Function at 0x466bb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x50e74c]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, edx
mov dword [esp + 0x58], 0
mov edx, ecx
mov dword [esp + 0x10], eax
shl eax, 6
push ebx
push esi
lea esi, [edx + 0x2d8]
mov dword [esp + 0x4c], edx
add esi, eax
lea ecx, [edx + 0x140]
push edi
mov edi, dword [edx]
mov dword [esp + 0x58], ecx
mov eax, dword [esi + 0x34]
mov dword [esp + 0x4c], eax
movzx eax, byte [esi + 0x20]
mov ecx, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x5c], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0x34], edi
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], esi
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
xor eax, eax
test edx, edx
jle 0x466c58
mov ecx, dword [esp + 0x50]
add ecx, 0x40
lea esp, [esp]
mov edi, dword [esp + 0x40]
cmp dword [ecx], edi
mov edi, dword [esp + 0x34]
je 0x466ea1
inc eax
add ecx, 4
cmp eax, edx
jl 0x466c40
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
not ecx
not edx
and ecx, dword [ebp + 8]
and edx, dword [ebp + 0xc]
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x3c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.004e0fa0
mov ecx, dword [esp + 0x4c]
and eax, 1
mov dword [esp + 0x24], eax
test byte [ecx + 0x24], 0x40
je 0x466cb2
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], 1
test byte [eax + 0x22], 0x20
je 0x466cbd
mov dword [esp + 0x80], 0
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x466d12
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00407a10
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x466d0b
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00407740
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x466d20
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x466d84
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00407a10
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x466d7d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00407740
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x466d92
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
cmp byte [esi + 0x20], 0
mov dword [esp + 0x7c], eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
jbe 0x466e0e
test byte [eax + 0x20], 8
je 0x466e0e
mov eax, dword [edi + 0x4c]
inc eax
mov dword [edi + 0x4c], eax
mov dword [esi], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x466dd6
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x466e0a
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
test byte [eax + 0x24], 4
je 0x466f5c
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x466e4c
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x466e80
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x466ec2
mov ecx, ebx
call fcn.004243f0
test eax, eax
je 0x466ebb
mov edx, 1
jmp 0x466efa
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x466c69
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x28], edx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x466f1e
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x466f53
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
inc eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov byte [esi + 0x21], 0xe
jmp 0x467fda
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 0x24]
test edx, 0x400
je 0x467225
movzx edx, word [ecx + 0x28]
mov ebx, dword [edi + 0x3c]
inc dword [edi + 0x60]
mov dword [esp + 0x18], edx
lea eax, [edx + 2]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x40]
cmp dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
jg 0x466fa9
add eax, 2
add eax, edx
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x3c]
sub eax, dword [esp + 0x14]
mov dword [edi + 0x3c], eax
jmp 0x466fbf
mov eax, dword [edi + 0x4c]
lea ebx, [eax + 1]
mov dword [esp + 0x10], ebx
lea ebx, [edx + 2]
add eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x46701f
xor ebx, ebx
lea esp, [esp]
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x467014
mov eax, dword [esp + 0x10]
mov ecx, edi
add eax, 2
add eax, ebx
test byte [edx + 0x12], 1
push eax
je 0x467003
push dword [esp + 0x28]
push ebx
push esi
call fcn.00466250
mov eax, dword [esi + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x467010
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.004386f0
add esp, 4
mov ecx, dword [esp + 0x4c]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x466fd0
mov ebx, dword [esp + 0x54]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x467047
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x46707b
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x46709c
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x4670d1
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x4c]
mov edx, 0xfffffff5
mov ecx, 0xfffffffe
cmp byte [eax + 0x1c], 0
mov eax, dword [eax + 0x20]
cmovne ecx, edx
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x467119
mov ecx, ebx
call fcn.004243f0
test eax, eax
je 0x467112
mov edx, 1
jmp 0x467151
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x48]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x28]
mov ecx, ebx
push dword [esp + 0x30]
call fcn.00424ad0
mov ecx, dword [esp + 0x54]
add esp, 8
cmp dword [esp + 0x18], 0
mov byte [ecx + 0x1c], 0
jle 0x4671a5
xor edi, edi
mov ebx, ecx
cmp edi, 0x10
jge 0x46719d
mov ax, word [ebx + 0x1e]
mov cx, di
shr ax, cl
test al, 1
je 0x467196
mov edx, dword [ebx + 0x2c]
mov ecx, esi
mov edx, dword [edx + edi*4]
call fcn.00466150
inc edi
cmp edi, dword [esp + 0x18]
jl 0x467176
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x24], eax
dec ecx
mov byte [esi + 0x21], 0x8b
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
mov esi, 0xa
mov eax, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x80], ecx
lea ecx, [edi + 0x78]
mov edx, dword [ecx]
cmp edx, eax
jl 0x467204
cmp edx, dword [esp + 0x80]
jg 0x467204
cmp byte [ecx - 8], 0
je 0x4671fe
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x4671f6
movzx eax, al
mov dword [edi + eax*4 + 0x1c], edx
inc byte [edi + 0x13]
mov eax, dword [esp + 0x10]
mov byte [ecx - 8], 0
mov dword [ecx], 0
add ecx, 0x18
dec esi
jne 0x4671d0
mov ecx, dword [esp + 0x14]
cmp ecx, dword [edi + 0x3c]
jle 0x467219
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x40], eax
mov ecx, edi
call fcn.004371f0
jmp 0x467fda
mov eax, edx
and eax, 0x100
je 0x4672c8
test dl, 5
je 0x4672c8
mov al, byte [edi + 0x13]
test al, al
jne 0x46724a
inc dword [edi + 0x4c]
mov edx, dword [edi + 0x4c]
jmp 0x467256
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x1c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov dword [esp + 0x6c], edx
mov ecx, edi
mov edx, dword [eax]
push 0
push esi
call fcn.00466250
mov esi, dword [esi + 0x10]
mov edi, eax
push esi
push edi
mov edx, 0x21
mov ecx, ebx
call fcn.00424590
push edi
push esi
mov esi, dword [esp + 0x60]
mov edx, 0x3f
push esi
mov ecx, ebx
call fcn.00424470
mov ecx, dword [esp + 0x58]
add esp, 0x24
mov edx, edi
push 1
call fcn.004371a0
add esp, 4
mov edx, esi
push edi
mov edi, dword [esp + 0x38]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00437060
mov eax, dword [esp + 0x50]
add esp, 8
mov byte [eax + 0x21], 0x95
jmp 0x467fda
test eax, eax
je 0x4674ca
test dl, 2
je 0x4674ca
mov dword [esp + 0x20], 0x95
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
test dl, 0x20
je 0x467317
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x1c], 1
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test dl, 0x10
je 0x46732c
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
jmp 0x46732e
xor ecx, ecx
cmp dword [esp + 0x24], 0
je 0x467343
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
jmp 0x467347
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4673b9
mov esi, dword [ecx]
lea eax, [esp + 0x80]
push eax
mov ecx, edi
mov dword [esp + 0x18], 0x3937383a
mov edx, dword [esi + 0x10]
call fcn.00438650
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
push edi
push eax
movzx eax, byte [esi]
push dword [esp + 0x48]
movzx edx, byte [esp + eax - 0x2d]
call fcn.00424470
add esp, 0xc
mov edx, edi
mov edi, dword [esp + 0x34]
mov ecx, edi
push 1
call fcn.004371a0
mov edx, dword [esp + 0x84]
add esp, 4
mov ecx, edi
call fcn.00439970
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x3c]
call fcn.00466150
jmp 0x4673de
mov eax, dword [esp + 0x18]
mov edx, 0x65
cmp dword [esp + 0x24], 0
mov ecx, ebx
push eax
push dword [esp + 0x44]
mov eax, 0x62
cmovne edx, eax
call fcn.00424590
add esp, 8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x467443
mov esi, dword [eax]
mov ecx, edi
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
call fcn.004386f0
mov al, byte [esi]
add esp, 4
cmp al, 0x4f
je 0x46741e
cmp al, 0x4d
je 0x46741e
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x4d]
jmp 0x467430
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x4e]
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
call fcn.00466150
cmp dword [esp + 0x24], 0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
sete al
add al, 6
mov dword [esi + 0x24], edx
mov byte [esi + 0x21], al
mov dword [esi + 0x28], ecx
mov esi, dword [esp + 0x20]
cmp esi, 0x95
je 0x467fda
mov ecx, edi
call fcn.00439950
push eax
push edx
mov edx, 0x60
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.00424590
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00437060
push dword [esp + 0x74]
mov edx, esi
mov ecx, ebx
push dword [esp + 0x2c]
push dword [esp + 0x50]
call fcn.00424470
mov ecx, dword [ebx + 4]
add esp, 0x1c
test ecx, ecx
je 0x467fda
mov eax, dword [ebx + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x6b
jmp 0x467fda
test edx, 0x200
je 0x4679fe
mov edi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x44], edi
mov edi, dword [esi + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
test byte [edi + 0x22], 1
mov edi, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0
je 0x467549
mov edi, dword [esp + 0x50]
cmp byte [edi + 0x24], 0
mov edi, dword [esp + 0x34]
je 0x467549
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x2e]
cmp eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jle 0x467549
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], 1
mov dword [esp + 0x38], eax
test dl, 0x20
je 0x467572
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x38], eax
mov eax, 1
jmp 0x467576
mov eax, dword [esp + 0x1c]
test dl, 0x10
je 0x46758e
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov eax, 1
lea ecx, [esp + 0x60]
mov edx, esi
push ecx
push eax
push dword [esp + 0x2c]
mov ecx, edi
call fcn.004664d0
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
call fcn.00407ab0
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
movzx edx, word [ecx + 0x2e]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
cmp eax, edx
jge 0x467605
mov ecx, dword [ecx + 0x1c]
xor edx, edx
cmp byte [eax + ecx], dl
mov ecx, dword [esp + 0x24]
sete dl
cmp ecx, edx
je 0x4675f3
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x46760b
cmp edx, eax
jne 0x46760b
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], edx
jmp 0x467613
mov ecx, dword [esp + 0x24]
jmp 0x4675eb
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x467625
test byte [edx + 0x12], 0x28
mov dword [esp + 0x1c], 0
je 0x46762d
mov dword [esp + 0x1c], 1
test ecx, ecx
je 0x46763f
test byte [ecx + 0x12], 0x28
mov dword [esp + 0x28], 0
je 0x467647
mov dword [esp + 0x28], 1
test edx, edx
jne 0x467696
test eax, eax
jg 0x467696
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x2c], 0
je 0x467755
add eax, dword [esp + 0x34]
mov edx, 0x18
push eax
push 0
mov ecx, ebx
call fcn.00424590
mov eax, dword [esp + 0x18]
add esp, 8
inc eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 1
jmp 0x467759
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], eax
test edx, edx
je 0x467657
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov edx, ecx
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov ecx, edi
push eax
mov dword [esp + 0x30], eax
call fcn.004386f0
mov eax, dword [esp + 0x18]
add esp, 4
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x9d
je 0x4676dc
cmp cl, 0x9c
jne 0x4676e1
mov eax, dword [eax + 0xc]
jmp 0x4676d0
mov cl, byte [eax]
cmp cl, 0x84
jne 0x4676eb
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x46770c
cmp cl, 0x80
jbe 0x4676fa
cmp cl, 0x83
jbe 0x46770c
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00435ef0
add esp, 4
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x46774a
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov dl, byte [eax]
call fcn.00434670
cmp al, 0x62
mov eax, dword [esp + 0x44]
jne 0x467734
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.00435f40
test eax, eax
je 0x46774a
mov eax, dword [esp + 0x44]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x14], eax
jmp 0x467759
mov eax, dword [esp + 0x14]
push dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
call fcn.004661a0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
push dword [esp + 0x40]
push dword [esp + 0x30]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x2c]
movzx edx, byte [ecx + eax*2 + 0x4f7df0]
mov ecx, ebx
call fcn.00424700
mov eax, dword [esp + 0x48]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x46787d
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, edi
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.004371a0
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, edi
push dword [esp + 0x2c]
call fcn.004386f0
mov eax, dword [esp + 0x18]
add esp, 4
mov cl, byte [eax]
cmp cl, 0x9d
je 0x4677f2
cmp cl, 0x9c
jne 0x4677f7
mov eax, dword [eax + 0xc]
jmp 0x4677e6
mov cl, byte [eax]
cmp cl, 0x84
jne 0x467801
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x467822
cmp cl, 0x80
jbe 0x467810
cmp cl, 0x83
jbe 0x467822
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00435ef0
add esp, 4
cmp dword [esp + 0x68], 0
je 0x467861
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dl, byte [eax]
call fcn.00434670
cmp al, 0x62
mov eax, dword [esp + 0x1c]
jne 0x46784b
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.00435f40
test eax, eax
je 0x467861
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x68]
mov edx, dword [esp + 0x38]
inc eax
push eax
mov dword [esp + 0x34], eax
call fcn.004661a0
add esp, 8
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
call fcn.00407740
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
call fcn.00407740
cmp dword [esp + 0x30], 0
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
jne 0x4678af
cmp dword [esp + 0x10], 0
jne 0x4678af
xor ecx, ecx
jmp 0x4678b4
mov ecx, 1
mov eax, dword [esp + 0x24]
inc eax
imul eax, ecx
movzx edx, byte [eax + 0x4f66e4]
cmp edx, 0x95
je 0x467901
push dword [esp + 0x2c]
mov ecx, ebx
push dword [esp + 0x38]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.00424700
mov edx, dword [ebx + 4]
add esp, 0x10
test edx, edx
je 0x467901
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
mov eax, dword [ebx + 0x1c]
setne cl
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], cl
mov al, byte [edi + 0x13]
test al, al
jne 0x467910
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
jmp 0x46791c
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x1c]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
test byte [ecx + 0x24], 0x30
je 0x467959
push eax
push dword [esp + 0x14]
mov edx, 0x29
mov ecx, ebx
push dword [esp + 0x20]
call fcn.00424470
add esp, 0xc
mov edx, 0x49
mov ecx, ebx
push dword [esp + 0x7c]
push dword [esp + 0x20]
call fcn.00424590
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.00439970
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.00466150
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.00466150
cmp dword [esp + 0x80], 0
jne 0x4679c8
mov ecx, edi
call fcn.00439950
push eax
push dword [esp + 0x1c]
mov edx, 0x69
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.00424590
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00437060
push dword [esp + 0x74]
mov edx, 0x3b
mov ecx, ebx
push dword [esp + 0x54]
call fcn.00424590
add esp, 0x18
mov ecx, dword [esp + 0x4c]
test dword [ecx + 0x24], 0x1000
je 0x4679db
mov byte [esi + 0x21], 0x95
jmp 0x4679e8
cmp dword [esp + 0x24], 0
sete al
add al, 6
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x18]
mov dword [esi + 0x24], eax
test byte [ecx + 0x24], 0xf
jne 0x467fda
jmp 0x467fd6
test edx, 0x2000
je 0x467fa8
mov eax, dword [edi + 0x48]
mov ecx, ebx
inc dword [edi + 0x4c]
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], 0
call fcn.00424770
mov ecx, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x24], edx
mov ecx, dword [ecx + 0x2c]
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x50]
mov byte [esi + 0x21], 0x10
mov cl, byte [eax + 0x28]
cmp cl, 1
jbe 0x467b76
movzx ecx, cl
sub ecx, dword [esp + 0x1c]
dec ecx
mov dword [esp + 0x80], ecx
lea ecx, [ecx + ecx*8]
lea edx, [ecx*8 + 0x50]
mov ecx, dword [esp + 0x5c]
call fcn.00407990
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x467ac3
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004c515f
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x80]
mov al, dl
inc al
mov byte [ecx + 1], al
mov byte [ecx], al
mov eax, dword [esp + 0x30]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx + 8], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ecx + 0x18], xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [ecx + 0x28], xmm0
movdqu xmm0, xmmword [eax + 0x30]
movdqu xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [esp + 0x50]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x28], eax
cmp edx, 1
jl 0x467b7d
mov ebx, dword [esp + 0x28]
lea eax, [esi + 0x60]
add ecx, 0x50
mov esi, eax
movzx eax, byte [esi]
lea esi, [esi + 0x40]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movdqu xmm0, xmmword [ebx + eax*8]
movdqu xmmword [ecx - 0x48], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x10]
movdqu xmmword [ecx - 0x38], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x20]
movdqu xmmword [ecx - 0x28], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x30]
movdqu xmmword [ecx - 0x18], xmm0
movq xmm0, qword [ebx + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
dec edx
jne 0x467b27
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
jmp 0x467b7d
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x22], 8
jne 0x467bab
mov eax, dword [edi + 0x4c]
mov edx, 0x18
inc eax
push eax
push 0
mov dword [esp + 0x1c], eax
lea ecx, [eax + 1]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x4c], ecx
mov ecx, ebx
call fcn.00424590
add esp, 8
push dword [esp + 0x38]
mov edx, 0x15
mov ecx, ebx
push 0
call fcn.00424590
mov ecx, dword [esp + 0x60]
add esp, 8
mov dword [esp + 0x70], eax
mov ecx, dword [ecx + 0xc]
cmp ecx, 1
jle 0x467d1e
xor edx, edx
mov dword [esp + 0x80], edx
test ecx, ecx
jle 0x467d1e
mov edi, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x28], ecx
xor esi, esi
mov eax, dword [edi + 0x14]
add eax, ecx
mov ebx, dword [eax]
mov dword [esp + 0x20], ebx
cmp eax, dword [esp + 0x4c]
je 0x467c46
test byte [ebx + 4], 1
jne 0x467c46
test byte [eax + 0x14], 0x10
jne 0x467c46
mov ebx, 0xfff
test word [eax + 0x12], bx
je 0x467c46
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
push 0
push 0
call fcn.004351d0
mov ecx, dword [esp + 0x64]
mov edx, esi
push eax
call fcn.00434cc0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x80]
mov esi, eax
inc edx
add ecx, 0x30
mov dword [esp + 0x80], edx
mov dword [esp + 0x28], ecx
cmp edx, dword [edi + 0xc]
jl 0x467bf1
mov ebx, dword [esp + 0x54]
mov ecx, esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x48]
test ecx, ecx
je 0x467d20
mov ecx, dword [edi]
mov edx, 0x30
call fcn.00407990
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x467cac
push 0x30
push 0
push ecx
call fcn.004cb9a0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
or eax, 0xffffffff
mov byte [ecx], 0x45
mov word [ecx + 0x22], ax
mov dword [ecx + 0x18], 1
mov eax, dword [edi]
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x467cde
xor edx, edx
mov ecx, eax
call fcn.004350a0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
call fcn.004350a0
mov eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x467d20
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x100
or dword [ecx + 4], eax
call fcn.00434950
mov eax, dword [edi]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], ecx
jle 0x467d16
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00409b90
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x467d20
xor ecx, ecx
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edx + 0xc], eax
jle 0x467ed2
mov dword [esp + 0x80], 0x200
mov dword [esp + 0x6c], 1
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x40]
cmp dword [eax + 8], edx
je 0x467d69
mov edx, dword [esp + 0x80]
test word [eax + 0x12], dx
je 0x467eb4
mov eax, dword [eax]
test ecx, ecx
je 0x467d7a
test byte [eax + 4], 1
jne 0x467d7a
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0xf0
push 0
push 0
push eax
call fcn.0046ad30
add esp, 0x14
mov dword [esp + 0x34], eax
test eax, eax
je 0x467eb4
movzx ecx, byte [esi + 0x20]
mov edx, dword [esp + 0x18]
push 0
push ecx
push dword [esp + 0x24]
lea ecx, [eax + 0x2d8]
push ecx
mov ecx, edi
call fcn.00466980
mov eax, dword [esp + 0x60]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x467e1b
mov eax, dword [esp + 0x68]
mov ecx, edi
mov esi, dword [esp + 0x20]
push 0
push dword [esp + 0x30]
mov eax, dword [eax + 0xc]
push dword [esp + 0x48]
dec eax
cmp esi, eax
mov eax, 0xffffffff
push eax
cmove esi, eax
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x10]
call fcn.00437380
push esi
push eax
mov eax, dword [ebx + 0x1c]
mov edx, 0x78
add eax, 2
mov ecx, ebx
push eax
push dword [esp + 0x30]
call fcn.00424700
mov esi, dword [esp + 0x68]
add esp, 0x20
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x467e36
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x467e6a
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
cmp byte [ecx + 0x26], 0
cmovne eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x30c]
test dword [eax + 0x24], 0x200
je 0x467ea7
cmp dword [esp + 0x20], 0
je 0x467e9e
mov edx, dword [esp + 0x60]
cmp dword [eax + 0x1c], edx
jne 0x467ea7
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
jmp 0x467eaf
mov dword [esp + 0x60], 0
call fcn.0046b620
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
jl 0x467d46
mov eax, dword [esp + 0x60]
mov dword [esi + 0x2c], eax
test eax, eax
je 0x467ee4
mov eax, dword [esp + 0x3c]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x467efc
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0xc], 0
call fcn.004350a0
mov edx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x70]
cmp edx, eax
jbe 0x467f11
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x70], eax
cmp dword [ebx + 0x20], eax
jg 0x467f33
mov ecx, ebx
call fcn.004243f0
test eax, eax
jne 0x467f67
mov eax, dword [esp + 0x70]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
or edx, 0xffffffff
sub edx, dword [esp + 0x10]
js 0x467f7d
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x467f7d
mov eax, dword [ebx + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x28], 1
jbe 0x467f94
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
call fcn.00407740
cmp dword [esp + 0x44], 0
jne 0x467fda
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.00466150
jmp 0x467fda
mov ecx, dword [esp + 0x24]
push dword [esp + 0x18]
mov al, byte [ecx + 0x4f4bb4]
movzx edx, byte [ecx + 0x4f4828]
mov ecx, ebx
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x44]
push eax
mov dword [esi + 0x24], eax
call fcn.00424590
add esp, 8
inc eax
mov dword [esi + 0x28], eax
mov byte [esi + 0x22], 1
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x14]
mov dword [esp + 0x80], edx
test edx, edx
jle 0x468057
mov ebx, dword [esp + 0x48]
test byte [esi + 0x14], 6
jne 0x468040
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x38]
and eax, dword [ebx + 0x3c]
or ecx, eax
je 0x468013
mov eax, dword [esp + 0x50]
mov byte [eax + 0x26], 1
jmp 0x468040
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x468020
test byte [eax + 4], 1
je 0x468040
push 8
push dword [esp + 0x80]
mov edx, eax
mov ecx, edi
call fcn.00438f00
mov edx, dword [esp + 0x88]
add esp, 8
or byte [esi + 0x14], 4
dec edx
add esi, 0x30
mov dword [esp + 0x80], edx
test edx, edx
jg 0x467ff3
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x468152
mov ebx, dword [esp + 0x48]
mov ecx, 0x402
test byte [esi + 0x14], 6
jne 0x46813e
cmp word [esi + 0x12], cx
jne 0x46813e
mov ecx, dword [esp + 0x40]
cmp dword [esi + 8], ecx
jne 0x468139
cmp dword [ebx], 0
jne 0x468139
mov eax, dword [esi]
mov edx, ecx
mov ecx, dword [esp + 0x58]
push 0
push 3
push dword [ebp + 0xc]
mov dword [esp + 0x78], eax
push dword [ebp + 8]
push dword [esi + 0xc]
call fcn.00463e80
add esp, 0x14
mov dword [esp + 0x70], eax
test eax, eax
je 0x468135
test byte [eax + 0x14], 4
jne 0x468135
mov ecx, dword [esp + 0x5c]
mov edx, 0x30
call fcn.00407990
mov edx, eax
mov dword [esp + 0x80], edx
test edx, edx
je 0x468135
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push 8
push dword [esp + 0x80]
mov ecx, dword [ecx]
movdqu xmm0, xmmword [ecx]
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movdqu xmmword [edx + 0x10], xmm0
movdqu xmm0, xmmword [ecx + 0x20]
mov ecx, edi
movdqu xmmword [edx + 0x20], xmm0
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
call fcn.00438f00
mov edx, dword [esp + 0x88]
add esp, 8
mov ecx, dword [esp + 0x5c]
call fcn.00407740
mov eax, dword [esp + 0x18]
mov ecx, 0x402
dec eax
add esi, 0x30
mov dword [esp + 0x18], eax
test eax, eax
jg 0x468072
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x46827a
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x18], eax
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x70], ecx
cmp eax, ecx
jg 0x4681de
test eax, eax
je 0x468180
add eax, eax
jmp 0x468185
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ebx]
shl eax, 2
push eax
call fcn.00407a10
mov esi, eax
add esp, 4
test esi, esi
je 0x468212
mov eax, dword [ebx]
test eax, eax
je 0x4681be
cmp esi, dword [eax + 0x10c]
jb 0x4681be
cmp esi, dword [eax + 0x110]
jae 0x4681be
movzx ecx, word [eax + 0xf0]
jmp 0x4681ca
push esi
call dword [0x510f4c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [ebx + 4], esi
mul ecx
mov ecx, dword [esp + 0x70]
shr edx, 4
mov dword [ebx + 0x20], edx
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edi
call fcn.00437420
mov edx, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [edx + 0x14]
cmp dword [edx + 0xc], ebx
jle 0x468276
mov eax, edx
lea esp, [esp]
test byte [esi + 0x14], 6
mov edx, dword [esp + 0x48]
jne 0x46826b
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x38]
and eax, dword [edx + 0x3c]
or ecx, eax
jne 0x468267
mov edx, dword [esi]
mov ecx, edi
push 8
push dword [esp + 0x80]
call fcn.00438f00
mov edx, dword [esp + 0x50]
add esp, 8
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x58]
inc ebx
add esi, 0x30
cmp ebx, dword [eax + 0xc]
jl 0x468230
jmp 0x46827a
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x64]
test esi, esi
je 0x4682ae
mov bl, byte [edi + 0x13]
cmp bl, 8
jae 0x4682ae
xor ecx, ecx
lea eax, [edi + 0x68]
nop
cmp dword [eax + 0x10], esi
je 0x4682aa
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x468290
movzx eax, bl
mov dword [edi + eax*4 + 0x1c], esi
inc byte [edi + 0x13]
jmp 0x4682ae
mov byte [eax + 8], 1
mov ecx, dword [esp + 0x84]
mov eax, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c515f
mov esp, ebp
pop ebp
ret