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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x511080]
xor eax, esp
mov dword [esp + 0x144], eax
mov eax, ecx
mov dword [esp + 0x6c], 0
mov dword [esp], eax
push esi
mov esi, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x68], eax
push edi
mov eax, dword [esi + 0x50]
mov edi, edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 0x3c]
mov dword [esp + 0x24], edi
lea ecx, [edx + 0x50]
mov dword [esp + 0x64], edx
mov dword [esp + 0x78], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0x10], esi
mov eax, dword [edx + 4]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x84], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x3c], eax
cmp dword [edx + 0x1f8], eax
jne 0x4aa560
mov ecx, 1
xor edx, edx
jmp 0x4aa5b2
mov edx, dword [edx + 0x1f4]
mov eax, 1
cmp edx, eax
jle 0x4aa598
mov ecx, dword [esp + 0x64]
add ecx, 0x1fc
nop dword [eax]
mov edi, dword [esp + 0x3c]
cmp dword [ecx], edi
mov edi, dword [esp + 0x24]
je 0x4aa649
inc eax
add ecx, 4
cmp eax, edx
jl 0x4aa580
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
not ecx
not edx
and ecx, dword [ebp + 0x14]
and edx, dword [ebp + 0x18]
mov dword [esi + 0x58], ecx
mov ecx, dword [esp + 0x64]
mov dword [esi + 0x5c], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, esi
call fcn.004f4cd0
mov ecx, dword [esp + 8]
and eax, 1
mov edx, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0xc], eax
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
cmp byte [edx + 0x3c], 0
mov dword [esp + 0x8c], eax
mov dword [edx + 0x18], eax
jbe 0x4aa692
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 8
je 0x4aa692
mov edx, dword [ecx + 0x2c]
mov eax, dword [esp + 0x10]
inc edx
mov dword [ecx + 0x2c], edx
mov dword [eax], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4aa663
push 0
push edx
push 0
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aa692
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 0x4aa5b2
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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 ecx, esi
test esi, esi
jle 0x4aa6c3
mov edx, dword [esp + 0x64]
lea eax, [esi + esi*2]
shl eax, 5
add edx, 0x330
add eax, edx
nop word [eax + eax]
cmp dword [eax - 0x38], 0
jne 0x4aa6c3
cmp dword [eax], 0
jne 0x4aa6c3
dec ecx
sub eax, 0x60
test ecx, ecx
jg 0x4aa6b0
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x64]
shl eax, 5
mov esi, dword [eax + ecx + 0x304]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x30], esi
test byte [eax + 0x28], 0x20
je 0x4aa7cc
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x70], ecx
jg 0x4aa70c
push edx
push 0
push esi
mov edx, 0xb
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aa73b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4aa77a
push 0
push dword [esp + 0x44]
mov edx, 0xc
mov ecx, edi
push esi
call fcn.00440850
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x10]
mov dword [eax + 0x44], edx
mov edx, eax
xor eax, eax
neg eax
sbb eax, eax
mov byte [edx + 0x3d], 9
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov dword [eax + 0x44], edx
mov edx, eax
xor eax, eax
neg eax
sbb eax, eax
mov byte [edx + 0x3d], 9
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x2c]
test edx, 0x400
je 0x4aadc7
movzx eax, word [eax + 0x30]
mov dword [esp + 0x40], eax
lea ecx, [eax + 2]
cmp ecx, 1
jne 0x4aa819
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4aa808
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x4aa853
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x9c]
jmp 0x4aa84f
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x1c]
mov esi, dword [eax + 0x20]
mov dword [esp + 0x18], esi
cmp ecx, edx
jg 0x4aa840
lea eax, [esi + ecx]
sub edx, ecx
mov esi, dword [esp + 8]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x18]
mov dword [esi + 0x20], eax
jmp 0x4aa853
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x10]
xor esi, esi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x40], esi
jbe 0x4aa925
mov eax, dword [esp + 0x28]
add edx, 2
mov dword [esp + 0x38], edx
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4aa916
test byte [ecx + 0xc], 1
je 0x4aa9b6
cmp esi, 0x1f
ja 0x4aa8a5
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x14]
jmp 0x4aa8a7
xor eax, eax
mov edi, dword [esp + 0x28]
test dword [edi + 0x28], eax
mov edi, dword [esp + 0x24]
je 0x4aa98b
mov eax, dword [esp + 8]
mov edi, dword [esp + 8]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x14], edx
push edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
mov eax, edi
inc dword [eax + 0x2c]
mov edx, dword [ecx]
mov ecx, edi
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x34], eax
call fcn.0045be90
mov edi, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x38]
add eax, esi
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4aa954
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x18]
push eax
push edx
mov edx, 0xae
mov ecx, edi
call fcn.00440850
add esp, 0xc
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
inc esi
cmp esi, dword [esp + 0x40]
jl 0x4aa875
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x18]
mov edx, dword [eax + 0x18]
cmp dword [edi + 0x70], ecx
jg 0x4aaa43
push 0
push esi
push edx
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aaa6e
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
add edx, esi
mov dword [eax + ecx*4], 0xae
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4aa912
lea eax, [edx + esi]
mov edx, ecx
mov ecx, dword [esp + 8]
push eax
push dword [esp + 0x50]
push esi
push dword [esp + 0x1c]
call fcn.004a9360
mov eax, dword [esp + 0x20]
add esp, 0x10
mov eax, dword [eax + 0x10]
mov dword [esp + 0x70], eax
jmp 0x4aa912
lea eax, [edx + esi]
mov edx, dword [ecx]
mov ecx, dword [esp + 8]
push 1
push eax
mov edx, dword [edx + 0x10]
call fcn.004aa080
mov eax, dword [esp + 0x1c]
add esp, 8
cmp byte [eax + 0xf], 0x4a
mov eax, dword [esp + 0x28]
jne 0x4aaa3a
test byte [eax + 0x1c], 2
je 0x4aaa3a
mov eax, dword [esp + 0x64]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x4aaa02
push 0
push edx
push 0
mov edx, 0x47
jmp 0x4aa908
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x47
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
jmp 0x4aa912
mov edx, dword [esp + 0x38]
jmp 0x4aa91a
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
lea edx, [esi + 1]
cmp dword [edi + 0x70], ecx
jg 0x4aaa91
push 0
push edx
push dword [esp + 0x48]
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aaac4
mov esi, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x47
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 + 0x28]
mov edx, 0xfffffffa
mov eax, 0xffffffff
test byte [ecx + 0x1c], 1
cmovne eax, edx
mov edx, 6
push eax
push dword [ecx + 0x24]
mov ecx, edi
push esi
push dword [esp + 0x7c]
push dword [esp + 0x4c]
call fcn.00440b90
mov eax, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [esp + 0x6c]
and dword [eax + 0x1c], 0xfffffffe
cmp byte [ecx + 0x57], 0
je 0x4aab0e
mov dword [eax + 0x24], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x40], eax
mov eax, 0x3f
cmp byte [ecx + 0x2e], 0
mov ecx, 0xb8
cmovne eax, ecx
xor ecx, ecx
mov byte [edx + 0x3d], al
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x44], eax
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x40], ecx
jbe 0x4aadb5
lea eax, [esi + 2]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x68], edx
cmp ecx, 0x10
jae 0x4aab7e
mov ax, word [esi + 0x22]
shr ax, cl
test al, 1
je 0x4aab7a
mov ecx, dword [esp + 0x10]
call fcn.004a8fa0
jmp 0x4aad9e
mov ecx, dword [esp + 0x18]
test byte [edx + 0xc], 1
je 0x4aada2
cmp ecx, 0x1f
ja 0x4aab96
mov eax, 1
shl eax, cl
jmp 0x4aab98
xor eax, eax
test dword [esi + 0x28], eax
jne 0x4aada2
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x57], 0
jne 0x4aada2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
cmp dword [ecx + 0x48], 0
jle 0x4aac95
mov eax, dword [edi]
xor esi, esi
mov al, byte [eax + 0x57]
mov byte [esp + 0x63], al
test al, al
je 0x4aabdb
mov ecx, 0x514d18
jmp 0x4aabeb
mov eax, dword [ecx + 0x4c]
mov eax, dword [eax + esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea ecx, [eax + ecx*4]
mov al, byte [ecx]
mov byte [esp + 0xf], al
cmp al, 0x5e
jne 0x4aac02
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
cmp dword [ecx + 0xc], eax
jmp 0x4aac11
cmp al, 0x87
jne 0x4aac17
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
cmp dword [ecx + 8], eax
mov edi, dword [esp + 0x24]
je 0x4aac36
mov ecx, dword [esp + 0x30]
add esi, 0x14
mov eax, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [eax + 0x48]
jge 0x4aac95
mov al, byte [esp + 0x63]
mov ecx, dword [esp + 0x10]
jmp 0x4aabd0
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x70], ecx
jg 0x4aac5f
push edx
movzx edx, byte [esp + 0x13]
mov ecx, edi
push esi
push eax
call fcn.00440850
add esp, 0xc
jmp 0x4aac95
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0xf]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00419010
mov esi, eax
add esp, 8
test esi, esi
je 0x4aaceb
push 0x34
push 0
push esi
call fcn.004d4bd0
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
mov byte [esi], 0x35
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
cmp eax, 1
jge 0x4aaceb
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ecx
call fcn.0041c910
add esp, 0xc
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x57], 0
jne 0x4aad8d
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
test ecx, ecx
jle 0x4aad13
mov eax, dword [edx + 0x14]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4 - 0xc]
mov ecx, dword [esp + 0x6c]
push 0
push 0x35
mov dword [esi + 0xc], edx
call fcn.00419010
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4aad7f
push 0x34
push 0
push eax
call fcn.004d4bd0
mov ecx, dword [esp + 0x28]
or eax, 0xffffffff
add esp, 0xc
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x34]
mov dword [ecx + 8], eax
mov byte [ecx], 0xb0
mov byte [eax], 0
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
mov dword [ecx + 0x18], 1
mov dword [esi + 0x10], ecx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax + 0x18]
push esi
push dword [esp + 0x14]
call fcn.00461c00
add esp, 0x10
jmp 0x4aad82
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0xc], 0
test esi, esi
je 0x4aad9a
mov edx, esi
mov ecx, eax
call fcn.00459770
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x40]
jl 0x4aab52
mov edx, dword [esp + 0x10]
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x4aafa0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov eax, dword [esp + 8]
mov ecx, eax
inc dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
push esi
push dword [esp + 0x50]
push 0
push dword [esp + 0x1c]
call fcn.004a9360
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
cmp edx, esi
je 0x4aae2a
test esi, esi
je 0x4aae2a
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4aae2a
movzx eax, al
mov dword [ecx + eax*4 + 0x9c], esi
inc byte [ecx + 0x13]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x34], 0
mov esi, dword [eax + 0x10]
je 0x4aaf20
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4aae58
push 0
push esi
push edx
mov edx, 0xd
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aae87
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x6c]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x70], edx
jg 0x4aaeb3
push dword [esp + 0x14]
mov edx, 0x40
mov ecx, edi
push esi
push eax
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4aaee6
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x40
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4aaf01
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 1
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
push eax
push esi
push dword [ebp + 0xc]
call fcn.004aa1f0
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4aaf57
push edx
push esi
push dword [esp + 0x44]
mov edx, 0x1e
mov ecx, edi
call fcn.00440850
mov edx, dword [esp + 0x1c]
xor eax, eax
add esp, 0xc
neg eax
sbb eax, eax
add eax, 2
mov byte [edx + 0x3d], 0xb8
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
xor eax, eax
neg eax
mov byte [edx + 0x3d], 0xb8
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov eax, edx
and eax, 0x102
cmp eax, 0x102
jne 0x4ab359
mov eax, 0xb8
mov dword [esp + 0x14], 0
xor esi, esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], 0
test dl, 0x20
je 0x4aafe2
mov eax, dword [esp + 0x28]
mov ecx, 4
mov eax, dword [eax + 0x38]
mov esi, dword [eax]
jmp 0x4aafe4
xor ecx, ecx
test dl, 0x10
je 0x4aaff9
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + eax]
mov dword [esp + 0x2c], ecx
jmp 0x4aaffb
xor ecx, ecx
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4ab009
mov dword [esp + 0x2c], esi
mov esi, ecx
test esi, esi
je 0x4ab140
mov ecx, dword [esi]
mov dword [esp + 0x44], 0x17151618
mov dword [esp + 0x30], ecx
mov edx, dword [ecx + 0x10]
mov al, byte [edx]
cmp al, 0xb0
jne 0x4ab02b
mov al, byte [edx + 2]
cmp al, 0xb1
jne 0x4ab034
mov eax, dword [edx + 0x14]
jmp 0x4ab03e
cmp al, 0x8a
jne 0x4ab08d
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4ab08d
mov edx, dword [esp + 8]
mov al, byte [edx + 0x13]
test al, al
jne 0x4ab056
inc dword [edx + 0x2c]
mov esi, dword [edx + 0x2c]
jmp 0x4ab065
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov esi, dword [edx + eax*4 + 0x9c]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 8]
push 1
push esi
call fcn.004aa080
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, esi
movzx eax, byte [ecx]
inc eax
and eax, 2
or eax, 1
mov al, byte [esp + eax + 0x44]
jmp 0x4ab0c0
mov ecx, dword [esp + 8]
lea eax, [esp + 0x1c]
push eax
call fcn.00461000
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, esi
mov dword [esp + 0x68], eax
call fcn.004a8fa0
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
movzx eax, byte [ecx]
mov al, byte [esp + eax + 0xe]
mov ecx, dword [edi + 0x6c]
mov byte [esp + 0xf], al
cmp dword [edi + 0x70], ecx
jg 0x4ab0e4
push edx
push dword [esp + 0x44]
movzx edx, al
mov ecx, edi
push dword [esp + 0x44]
call fcn.00440850
add esp, 0xc
jmp 0x4ab11e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0xf]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
test esi, esi
je 0x4ab1a7
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4ab1a7
movzx eax, al
mov dword [ecx + eax*4 + 0x9c], esi
inc byte [ecx + 0x13]
jmp 0x4ab1a7
mov ecx, dword [edi + 0x6c]
xor eax, 1
lea edx, [eax*4 + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x4ab169
mov ecx, dword [esp + 0x30]
push 0
push ecx
push dword [esp + 0x44]
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab1a3
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4ab24b
mov esi, dword [eax]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
push 1
mov edx, dword [esi + 0x10]
push eax
mov dword [esp + 0x1c], eax
call fcn.004aa080
mov ecx, dword [esi + 0x10]
add esp, 8
mov dl, byte [ecx]
mov al, dl
cmp al, 0xb0
jne 0x4ab1db
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4ab1e4
mov eax, dword [ecx + 0x14]
jmp 0x4ab1ee
cmp al, 0x8a
jne 0x4ab1f3
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4ab1fd
mov al, byte [esi]
cmp al, 0x38
je 0x4ab20a
cmp al, 0x36
je 0x4ab20a
mov eax, dword [esp + 0x4c]
lea eax, [eax*2 + 0x36]
jmp 0x4ab218
mov eax, dword [esp + 0x4c]
xor eax, 1
lea eax, [eax*2 + 0x37]
mov dword [esp + 0x34], eax
cmp dl, 0xb0
jne 0x4ab224
mov dl, byte [ecx + 2]
cmp dl, 0xb1
jne 0x4ab22e
mov eax, dword [ecx + 0x14]
jmp 0x4ab239
cmp dl, 0x8a
jne 0x4ab23e
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4ab24b
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
call fcn.004a8fa0
cmp dword [esp + 0x4c], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
sete al
add al, 0x26
cmp dword [esp + 0x34], 0xb8
mov byte [edx + 0x3d], al
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
je 0x4aadb5
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x2c]
cmp dword [edi + 0x70], ecx
jg 0x4ab2a1
push 0
push esi
push dword [esp + 0x44]
mov edx, 0x87
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab2d0
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x34]
cmp dword [edi + 0x70], ecx
jg 0x4ab2f2
mov ecx, dword [esp + 0x14]
push esi
push dword [esp + 0x44]
push ecx
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab328
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov byte [eax + 1], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4aadb1
lea ecx, [eax + eax*4]
mov edx, 0x53
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
xor eax, eax
mov edx, dword [esp + 0x10]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
test edx, 0x200
je 0x4ac560
mov esi, dword [esp + 0x28]
mov dword [esp + 0x18], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0xf], 0
movzx eax, word [esi + 0x1a]
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x80], eax
movzx eax, word [esi + 0x1c]
xor esi, esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], esi
mov byte [esp + 0x63], 0
mov eax, dword [eax + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], esi
movzx ecx, cx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], eax
test dl, 0x20
je 0x4ab3dd
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x38]
movzx esi, word [esi + 0x1a]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x18], eax
test dl, 0x10
je 0x4ab4ec
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x38]
movzx edx, word [edx + 0x1c]
cmp esi, edx
mov ecx, dword [eax + ecx*4]
cmova edx, esi
mov eax, 0x100
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edx
test word [ecx + 0xa], ax
je 0x4ab4a8
mov eax, dword [esp + 8]
inc dword [eax + 0x2c]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x2c], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ab43f
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab46e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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, dword [esp + 0x10]
xor edx, edx
mov eax, dword [edi + 0x6c]
mov esi, dword [ecx + 0x2c]
mov dword [ecx + 0x30], eax
add esi, esi
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x2c], esi
movzx ecx, ax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 0x1c]
cmp byte [ecx + eax], 1
mov eax, dword [esp + 0x10]
sete dl
xor edx, dword [esp + 0x4c]
or edx, esi
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0
mov esi, edx
jne 0x4ab4ec
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x50]
movzx ecx, ax
mov eax, dword [esi + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x4ab4de
mov eax, dword [esi + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
je 0x4ab4e5
mov ecx, dword [esp + 0x1c]
mov esi, edx
cmp ecx, 0xfffffffe
jne 0x4ab4ec
mov byte [esp + 0xf], 1
mov esi, edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2c]
test al, 0x30
jne 0x4ab58b
test eax, 0x80000
je 0x4ab58b
mov ecx, dword [esp + 8]
mov esi, 1
mov eax, dword [esp + 0x10]
mov byte [esp + 0xf], 1
inc dword [ecx + 0x2c]
cmp dword [eax], 0
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x54], edx
mov dword [eax + 0x24], edx
je 0x4ab57d
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ab546
push 0
push edx
push 0
lea edx, [esi + 0x46]
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab579
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x47
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 ecx, dword [esp + 8]
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x28], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x50]
cmp ax, word [edx + 0x34]
jae 0x4ab5e6
movzx ecx, ax
mov eax, dword [edx + 0x1c]
xor edx, edx
cmp byte [ecx + eax], dl
sete dl
cmp dword [esp + 0x4c], edx
jne 0x4ab5e6
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xf]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x80]
movzx ecx, cx
movzx eax, al
mov byte [esp + 0xf], 0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x40], eax
cmp dword [ebp + 0xc], 0
jle 0x4ab64d
mov eax, dword [esp + 0x28]
test dword [eax + 0x2c], 0x100000
je 0x4ab64d
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ab61a
push 0
push 0
push dword [esp + 0x50]
mov edx, 0x88
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab64d
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x88
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 8]
lea eax, [esp + 0x30]
push eax
push esi
push dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
mov edx, esi
call fcn.004a9a20
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x5c], edx
test ecx, ecx
je 0x4ab6e6
cmp word [esp + 0x40], 0
je 0x4ab6e6
mov eax, dword [esp + 0x50]
movzx eax, ax
add eax, ecx
mov dword [esp + 0x1c], eax
jne 0x4ab696
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x4ab6e6
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ab6a0
mov eax, dword [esp + 0x6c]
sub ecx, edx
push 0
lea esi, [ecx + 1]
push esi
test eax, eax
je 0x4ab6c0
mov ecx, eax
call fcn.00419010
jmp 0x4ab6c5
call fcn.004188b0
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4ab6de
push esi
push dword [esp + 0x20]
push eax
call fcn.004d4640
add esp, 0xc
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4ab6fb
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x54]
jmp 0x4ab702
mov eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4ab718
test byte [eax + 0xc], 0x28
mov dword [esp + 0x7c], 0
je 0x4ab720
mov dword [esp + 0x7c], 1
mov esi, dword [esp + 0x34]
test esi, esi
je 0x4ab736
test byte [esi + 0xc], 0x28
mov dword [esp + 0x14], 0
je 0x4ab73e
mov dword [esp + 0x14], 1
mov esi, dword [esp + 0x50]
test eax, eax
jne 0x4ab75d
test si, si
jne 0x4ab75d
mov dword [esp + 0x70], eax
mov eax, esi
movzx esi, ax
mov dword [esp + 0x38], esi
jmp 0x4ab8e7
movzx esi, si
mov dword [esp + 0x70], 1
mov dword [esp + 0x38], esi
test eax, eax
je 0x4ab8e3
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, dword [esp + 0x50]
movzx ecx, ax
mov eax, dword [esp + 0x80]
add ecx, edx
movzx eax, ax
mov edx, esi
push eax
mov dword [esp + 0x9c], ecx
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004aa080
mov eax, dword [esp + 0x20]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x4ab7fc
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4ab7c6
mov edx, 0x514d24
mov ecx, 0x514d1a
jmp 0x4ab7de
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea edx, [ecx - 2]
lea ecx, [ecx*4 - 0x12]
add ecx, eax
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [ecx], ax
mov eax, dword [esp + 0x18]
test byte [eax + 0xa], 0x80
jne 0x4ab863
mov ecx, esi
call fcn.0045b080
test eax, eax
je 0x4ab863
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x98]
cmp dword [edi + 0x70], ecx
jg 0x4ab834
push 0
push dword [esp + 0x5c]
mov ecx, edi
push edx
mov edx, 0x32
call fcn.00440850
add esp, 0xc
jmp 0x4ab863
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0x32
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 + 0x30]
test ecx, ecx
je 0x4ab889
mov eax, dword [esp + 0x50]
movzx eax, ax
add eax, ecx
mov ecx, esi
push eax
mov eax, dword [esp + 0x84]
movzx edx, ax
call fcn.004a9020
add esp, 4
mov eax, dword [esp + 0x80]
movzx eax, ax
add dword [esp + 0x38], eax
mov al, byte [esi]
cmp al, 0xb0
jne 0x4ab8a0
mov al, byte [esi + 2]
cmp al, 0xb1
jne 0x4ab8a9
mov eax, dword [esi + 0x14]
jmp 0x4ab8b3
cmp al, 0x8a
jne 0x4ab8cb
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4ab8cb
xor al, al
mov dword [esp + 0x7c], 1
mov byte [esp + 0xf], al
jmp 0x4ab997
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
call fcn.004a8fa0
xor al, al
mov byte [esp + 0xf], al
jmp 0x4ab997
mov eax, dword [esp + 0x50]
cmp byte [esp + 0xf], 0
je 0x4ab92a
mov ecx, dword [edi + 0x6c]
movzx edx, ax
add edx, dword [esp + 0x5c]
mov dword [esp + 0x7c], 0
cmp dword [edi + 0x70], ecx
jg 0x4ab91b
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab986
mov esi, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
jmp 0x4ab960
test ecx, ecx
je 0x4ab993
mov ecx, dword [edi + 0x6c]
movzx edx, ax
add edx, dword [esp + 0x5c]
cmp dword [edi + 0x70], ecx
jg 0x4ab953
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ab986
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
inc esi
mov dword [esp + 0x70], 1
mov dword [esp + 0x38], esi
mov al, byte [esp + 0xf]
mov ecx, dword [esp + 0x38]
mov edx, ecx
mov esi, dword [esp + 0x30]
movzx eax, al
sub edx, eax
mov eax, dword [esp + 0x5c]
test esi, esi
je 0x4ab9f2
test edx, edx
jle 0x4ab9be
cmp byte [esi], 0x41
jg 0x4ab9be
dec edx
inc eax
inc esi
test edx, edx
jg 0x4ab9b2
cmp edx, 1
jle 0x4ab9d0
cmp byte [edx + esi - 1], 0x41
jg 0x4ab9d4
dec edx
cmp edx, 1
jg 0x4ab9c3
test edx, edx
jle 0x4ab9f2
push edx
push esi
push 0
push edx
push eax
mov eax, dword [esp + 0x1c]
mov edx, 0x60
mov ecx, dword [eax + 8]
call fcn.00440b90
mov ecx, dword [esp + 0x4c]
add esp, 0x14
mov eax, dword [esp + 0x28]
movzx eax, word [eax + 0x32]
test ax, ax
je 0x4aba07
cmp ecx, eax
je 0x4abd7a
mov edx, dword [esp + 0x54]
test edx, edx
je 0x4aba5c
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4aba2d
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4aba5c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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 eax, dword [esp + 0x10]
mov esi, dword [eax + 0x34]
test esi, esi
je 0x4abb01
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4aba8f
push dword [esp + 0x5c]
mov edx, 0x40
mov ecx, edi
push dword [esp + 0x5c]
push esi
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4abac2
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x58]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x40
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov esi, dword [esp + 0x58]
cmp byte [eax + 0x57], 0
jne 0x4abae6
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x50]
movzx eax, ax
mov dword [ecx + 0x10], eax
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
push eax
push esi
push dword [ebp + 0xc]
call fcn.004aa1f0
add esp, 0x10
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x4c]
mov al, byte [ecx + eax*2 + 0x501ab8]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x23], al
movzx eax, al
mov dword [esp + 0x98], eax
test dword [ecx + 0x2c], 0x100000
je 0x4abc06
cmp eax, 0x17
jne 0x4abc06
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
movsx ecx, word [eax]
mov eax, 0x66666667
add ecx, 9
imul ecx
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x44], edx
cmp dword [edi + 0x70], edx
jg 0x4abb85
push 0
push 0
push esi
mov edx, 0x7c
mov ecx, edi
call fcn.00440850
mov esi, eax
add esp, 0xc
mov dword [esp + 0x44], esi
jmp 0x4abbb8
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x7c
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x18], 0
je 0x4abbff
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4abbd6
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4abbe8
mov ecx, 0x514d18
jmp 0x4abbf1
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea ecx, [eax + ecx*4]
lea eax, [edx + 1]
mov dword [esp + 0x44], 0
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x98]
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4abc2a
push dword [esp + 0x5c]
mov edx, eax
mov ecx, edi
push dword [esp + 0x5c]
push dword [esp + 0x50]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4abc67
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov eax, dword [edi]
mov esi, dword [esp + 0x38]
cmp byte [eax + 0x57], 0
jne 0x4abc82
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4abd7e
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 2]
cmp dword [edi + 0x70], ecx
jg 0x4abcaf
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4abce2
mov esi, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
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 ecx, dword [esp + 0x4c]
mov eax, 1
mov edx, dword [edi + 0x6c]
cmp eax, esi
sbb eax, eax
and eax, 4
mov al, byte [eax + ecx + 0x501aba]
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], edx
jg 0x4abd22
push dword [esp + 0x5c]
movzx edx, al
mov ecx, edi
push dword [esp + 0x5c]
push dword [esp + 0x50]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4abd5f
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4abd7a
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
sub esi, dword [esp + 0x7c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
movzx esi, dx
test ecx, ecx
je 0x4abf49
cmp dword [esp + 0x44], 0
mov eax, dword [ecx]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x70], ecx
je 0x4abdab
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x40]
movzx esi, dx
mov edx, ecx
add esi, dword [esp + 0x5c]
mov ecx, dword [esp + 8]
movzx eax, ax
push eax
push esi
call fcn.004aa080
mov eax, dword [esp + 0x3c]
mov ecx, 0x100
add esp, 8
test word [eax + 0xa], cx
je 0x4abe22
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4abdec
mov edx, 0x514d24
mov ecx, 0x514d1a
jmp 0x4abe04
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea edx, [ecx - 2]
lea ecx, [ecx*4 - 0x12]
add ecx, eax
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
shr eax, 1
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x2c]
and al, 1
movzx eax, al
mov word [ecx], ax
mov eax, dword [esp + 0x34]
test byte [eax + 0xa], 0x80
jne 0x4abe84
mov ecx, dword [esp + 0x70]
call fcn.0045b080
test eax, eax
je 0x4abe84
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4abe55
push 0
push dword [esp + 0x5c]
mov edx, 0x32
mov ecx, edi
push esi
call fcn.00440850
add esp, 0xc
jmp 0x4abe84
mov edx, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x4abefb
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
push esi
movzx edx, ax
call fcn.004a9020
mov eax, dword [esp + 0x44]
mov edx, esi
mov esi, dword [esp + 0x54]
add esp, 4
movzx esi, si
add esi, dword [esp + 0x5c]
movzx eax, ax
test eax, eax
je 0x4abec4
cmp byte [edx], 0x41
jg 0x4abec4
dec eax
inc esi
inc edx
test eax, eax
jg 0x4abeb8
cmp eax, 1
jle 0x4abedd
nop dword [eax]
cmp byte [edx + eax - 1], 0x41
jg 0x4abee1
dec eax
cmp eax, 1
jg 0x4abed0
test eax, eax
jle 0x4abefb
push eax
push edx
push 0
push eax
mov eax, dword [esp + 0x18]
mov edx, 0x60
push esi
mov ecx, dword [eax + 8]
call fcn.00440b90
add esp, 0x14
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x50]
movzx eax, ax
movzx esi, dx
add esi, eax
mov al, byte [ecx]
cmp al, 0xb0
jne 0x4abf18
mov al, byte [ecx + 2]
cmp al, 0xb1
jne 0x4abf21
mov eax, dword [ecx + 0x14]
jmp 0x4abf2b
cmp al, 0x8a
jne 0x4abf3a
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jle 0x4abf3a
mov dword [esp + 0x14], 1
jmp 0x4abfb1
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
call fcn.004a8fa0
jmp 0x4abfb1
cmp byte [esp + 0x63], 0
je 0x4abfb1
test eax, eax
jne 0x4abfb0
mov ecx, dword [edi + 0x6c]
movzx edx, dx
add edx, dword [esp + 0x5c]
cmp dword [edi + 0x70], ecx
jg 0x4abf75
push eax
push edx
push eax
lea edx, [eax + 0x4b]
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4abfa8
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x4b
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 dword [esp + 0x14], 0
inc esi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4abfc4
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00418c30
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4abfd7
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00418c30
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x44], 0
jne 0x4abfe7
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x44], eax
test esi, esi
je 0x4ac0fc
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4ac04a
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 3]
cmp dword [edi + 0x70], ecx
jg 0x4ac017
push 0
push edx
push eax
mov edx, 0x11
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ac04a
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x11
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 + 0x14]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0x6c]
mov al, byte [eax + ecx*2 + 0x503f28]
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], edx
jg 0x4ac082
push dword [esp + 0x5c]
movzx edx, al
mov ecx, edi
push dword [esp + 0x5c]
push dword [esp + 0x50]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4ac0bf
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ac0d6
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4ac0fc
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4ac0f0
mov eax, 0x514d18
jmp 0x4ac0f9
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4ac1f1
mov ecx, dword [edi + 0x6c]
lea edx, [ecx + 2]
cmp dword [edi + 0x70], ecx
jg 0x4ac128
push 0
push edx
push eax
mov edx, 0x10
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ac15b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
movzx eax, byte [esp + 0xf]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0x6c]
mov al, byte [eax + ecx*2 + 0x503f28]
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], edx
jg 0x4ac194
push dword [esp + 0x5c]
movzx edx, al
mov ecx, edi
push dword [esp + 0x5c]
push dword [esp + 0x50]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4ac1d1
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], ecx
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ac1f1
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
lea ecx, [eax + ecx*4]
movzx eax, byte [esp + 0xf]
add eax, esi
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x28]
test dword [eax + 0x2c], 0x40000
je 0x4ac25a
mov eax, dword [esp + 0x50]
mov ecx, dword [edi + 0x6c]
movzx edx, ax
movzx esi, ax
cmp dword [edi + 0x70], ecx
jg 0x4ac227
push edx
push esi
push dword [esp + 0x50]
mov edx, 0x7d
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ac256
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x7d
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
test byte [eax + 0x2c], 0x40
mov eax, dword [esp + 0x64]
je 0x4ac2bf
mov ecx, 0x1020
test word [eax + 0x28], cx
jne 0x4ac2bf
mov dword [esp + 0x2c], 1
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
cmp dword [edx], 0
jne 0x4ac2a5
mov ecx, dword [esp + 0x74]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x4ac2a5
push dword [esp + 0x78]
mov edx, eax
call fcn.004aa170
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x28]
test dword [ecx + 0x2c], 0x1000
je 0x4ac51d
mov byte [edx + 0x3d], 0xb8
jmp 0x4ac52a
mov edx, dword [esp + 0x74]
xor ecx, ecx
mov esi, dword [edx + 0xc]
test byte [esi + 0x1c], 0x80
jne 0x4ac2eb
mov esi, dword [esp + 0x48]
mov ecx, eax
push esi
push dword [esp + 0x40]
call fcn.004a9f10
add esp, 8
mov dword [esp + 0x2c], 0
jmp 0x4ac27b
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x48]
je 0x4ac514
mov esi, dword [esi + 8]
mov dword [esp + 0x2c], ecx
test esi, esi
je 0x4ac320
mov dword [esp + 0x2c], ecx
nop dword [eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4ac320
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4ac310
movzx ecx, word [esi + 0x32]
cmp ecx, 1
jne 0x4ac355
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4ac340
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x44], eax
jmp 0x4ac398
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x9c]
mov dword [esp + 0x44], eax
jmp 0x4ac398
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x44], eax
cmp ecx, edx
jg 0x4ac37d
mov edi, dword [esp + 8]
add eax, ecx
sub edx, ecx
mov dword [edi + 0x20], eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov dword [eax + 0x1c], edx
jmp 0x4ac394
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], edx
mov dword [ecx + 0x2c], eax
mov edx, dword [esp + 0x74]
movzx eax, word [esi + 0x32]
mov dword [esp + 0x1c], 0
mov ecx, eax
mov dword [esp + 0x98], 0
cmp word [esp + 0x1c], ax
jae 0x4ac48d
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], 0
jmp 0x4ac3d4
mov edx, dword [esp + 0x74]
movzx edx, word [edx + 0x34]
xor ecx, ecx
test edx, edx
je 0x4ac409
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x30]
movzx eax, word [edi + eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x1c]
cmp di, word [eax]
mov edi, dword [esp + 0x24]
je 0x4ac431
inc ecx
add eax, 2
cmp ecx, edx
jl 0x4ac3f4
or eax, 0xffffffff
mov ecx, dword [edi + 0x6c]
movsx edx, ax
cmp dword [edi + 0x70], ecx
jg 0x4ac436
push dword [esp + 0x14]
mov ecx, edi
push edx
push dword [esp + 0x50]
mov edx, 0x5e
call fcn.00440850
add esp, 0xc
jmp 0x4ac469
movzx eax, cx
jmp 0x4ac40c
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x98]
movzx ecx, word [esi + 0x32]
inc edx
inc dword [esp + 0x14]
add dword [esp + 0x30], 2
mov dword [esp + 0x98], edx
cmp edx, ecx
jl 0x4ac3d0
mov edx, dword [edi + 0x6c]
movzx esi, cx
cmp dword [edi + 0x70], edx
jg 0x4ac4ba
push dword [esp + 0x44]
mov edx, 0x1c
mov ecx, edi
push dword [esp + 0x90]
push dword [esp + 0x44]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4ac4f4
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x8c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x1c
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ac277
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
jmp 0x4ac277
mov esi, dword [esp + 0x48]
jmp 0x4ac27f
cmp dword [esp + 0x4c], 0
sete al
add al, 0x26
mov byte [edx + 0x3d], al
mov dword [edx + 0x40], esi
mov al, byte [ecx + 0x2e]
and al, 1
mov byte [edx + 0x3e], al
test byte [ecx + 0x2c], 0xf
jne 0x4ac53f
mov byte [edx + 0x3f], 1
cmp dword [esp + 0x2c], 0
je 0x4ad29a
xor eax, eax
mov dword [esp + 0x74], eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
test edx, 0x2000
je 0x4ad1c2
mov ecx, dword [esp + 8]
xor edx, edx
mov dword [esp + 0x80], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov eax, dword [ecx + 0x28]
inc dword [ecx + 0x2c]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x88], eax
inc eax
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x38]
dec eax
mov dword [esp + 0x30], esi
mov dword [ecx + 0x38], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 0x40], esi
mov esi, dword [esp + 0x64]
mov byte [eax + 0x3d], 0x43
mov al, byte [esi + 0x2c]
cmp al, 1
jbe 0x4ac72b
mov ecx, dword [esp + 0x6c]
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x68], eax
push edx
lea eax, [eax + eax*8]
lea eax, [eax*8 + 0x50]
push eax
call fcn.00419010
mov ecx, eax
add esp, 8
mov dword [esp + 0x7c], ecx
test ecx, ecx
jne 0x4ac63f
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x68]
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x84]
movups xmm0, xmmword [eax]
movups xmmword [ecx + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x18], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x28], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
movq qword [ecx + 0x48], xmm0
mov eax, dword [esi + 4]
add eax, 8
cmp edx, 1
jl 0x4ac6e7
mov esi, dword [esp + 0x10]
add ecx, 0x50
add esi, 0x9c
mov edi, eax
nop dword [eax + eax]
movzx eax, byte [esi]
lea esi, [esi + 0x60]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movups xmm0, xmmword [edi + eax*8]
movups xmmword [ecx - 0x48], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x10]
movups xmmword [ecx - 0x38], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x20]
movups xmmword [ecx - 0x28], xmm0
movups xmm0, xmmword [edi + eax*8 + 0x30]
movups xmmword [ecx - 0x18], xmm0
movq xmm0, qword [edi + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
sub edx, 1
jne 0x4ac6a0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
test byte [esi + 0x28], 0x10
jne 0x4ac83b
test byte [ecx + 0x1c], 0x80
jne 0x4ac768
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x2c]
inc edx
mov dword [ecx + 0x2c], edx
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x38], edx
cmp dword [edi + 0x70], ecx
jg 0x4ac734
push 0
push edx
push 0
mov edx, 0x4b
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ac82c
mov eax, dword [esi + 4]
mov dword [esp + 0x7c], eax
jmp 0x4ac6eb
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4b
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
jmp 0x4ac82c
mov esi, dword [ecx + 8]
test esi, esi
je 0x4ac780
nop
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4ac780
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4ac770
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x38], eax
inc eax
mov dword [ecx + 0x28], eax
mov ecx, dword [edi + 0x6c]
movzx edx, word [esi + 0x32]
cmp dword [edi + 0x70], ecx
jg 0x4ac7b3
push 0
push edx
push dword [esp + 0x40]
mov edx, 0x76
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ac7e6
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x76
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 + 8]
mov edx, esi
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
call fcn.004751a0
mov esi, eax
test esi, esi
je 0x4ac82c
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x4ac81a
push esi
mov edx, 0xfffffff8
call fcn.00441340
add esp, 4
jmp 0x4ac82c
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], esi
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x2c]
inc ecx
mov dword [esp + 0x34], ecx
mov dword [edx + 0x2c], ecx
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x68], edx
cmp dword [edi + 0x70], edx
jg 0x4ac864
push 0
push dword [esp + 0x34]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.00440850
add esp, 0xc
mov dword [esp + 0x68], eax
jmp 0x4ac897
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x47
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 + 0x78]
cmp dword [eax + 0xc], 1
jle 0x4ac9a3
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x14], ecx
xor edi, edi
nop
mov eax, dword [eax + 0x18]
add eax, esi
mov edx, dword [eax]
cmp eax, dword [esp + 0x1c]
je 0x4ac90a
mov edi, 0x8006
test word [eax + 0xa], di
mov edi, dword [esp + 0x4c]
jne 0x4ac90a
mov ecx, 0x3fff
test word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
je 0x4ac90a
test dword [edx + 4], 0x400000
jne 0x4ac90a
mov ecx, dword [esp + 0x6c]
push 0
push 0
call fcn.00459a00
mov ecx, dword [esp + 0x10]
mov edx, edi
push eax
call fcn.00459130
mov ecx, dword [esp + 0x20]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x78]
inc ecx
add esi, 0x30
mov dword [esp + 0x14], ecx
cmp ecx, dword [eax + 0xc]
jl 0x4ac8b0
test edi, edi
mov edi, dword [esp + 0x24]
je 0x4ac9a3
mov eax, dword [esp + 8]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00419010
mov esi, eax
add esp, 8
test esi, esi
je 0x4ac990
push 0x34
push 0
push esi
call fcn.004d4bd0
mov edx, dword [esp + 0x58]
or eax, 0xffffffff
mov word [esi + 0x22], ax
add esp, 0xc
mov dword [esi + 0x10], edx
mov byte [esi], 0x2c
mov eax, dword [edx + 4]
and eax, 0x400208
or dword [esi + 4], eax
mov ecx, dword [edx + 0x18]
mov edx, dword [esp + 8]
inc ecx
mov dword [esi + 0x18], ecx
mov eax, dword [edx]
mov eax, dword [eax + 0x84]
cmp ecx, eax
jle 0x4ac99f
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edx
call fcn.0041c910
add esp, 0xc
jmp 0x4ac99f
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax]
call fcn.00459770
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 8]
push str.MULTI_INDEX_OR
push 1
push esi
call fcn.00440e10
mov edx, dword [esp + 0x7c]
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x50], ecx
cmp dword [edx + 0xc], ecx
jle 0x4aca3c
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edx + 0x18]
mov edx, dword [esp + 0x3c]
cmp dword [eax + 0x14], edx
je 0x4ac9e3
mov edx, 0x400
test word [eax + 0xc], dx
je 0x4aca2c
mov edx, dword [eax]
xor eax, eax
mov dword [esp + 0x40], eax
test edx, edx
je 0x4aca03
mov ecx, dword [esp + 0x6c]
push eax
push eax
call fcn.00459a00
mov ecx, dword [esp + 0x58]
add esp, 8
jmp 0x4aca05
xor eax, eax
mov edx, dword [esp + 0x6c]
mov esi, eax
mov dword [esp + 0x28], eax
cmp byte [edx + 0x57], 0
je 0x4aca51
test eax, eax
je 0x4aca28
mov ecx, dword [esp + 0x6c]
mov edx, eax
call fcn.00459770
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x70]
inc ecx
mov dword [esp + 0x50], ecx
mov edx, eax
cmp ecx, dword [eax + 0xc]
jl 0x4ac9c6
mov ecx, dword [esi + 0xe0]
test ecx, ecx
jne 0x4acfd2
xor eax, eax
jmp 0x4acff0
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x4aca5e
mov dword [edx + 0xc], eax
mov esi, edx
lea eax, [ecx + 1]
push eax
push str.INDEX__d
push 1
push dword [esp + 0x14]
call fcn.00440e10
push dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x1c]
push 0x20
push 0
push 0
push 0
push esi
call fcn.004b9470
mov esi, eax
add esp, 0x28
mov dword [esp + 0x44], esi
test esi, esi
je 0x4acfb4
mov edx, dword [esp + 0x7c]
lea ecx, [esi + 0x2f8]
push 0
push ecx
mov ecx, dword [esp + 0x10]
call fcn.004a8920
mov eax, dword [esp + 0x6c]
add esp, 8
test byte [eax + 0x28], 0x10
jne 0x4ace78
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
dec eax
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
test byte [eax + 0x1c], 0x80
jne 0x4acbcc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4acb15
push 0
push dword [esp + 0x38]
mov edx, 0x87
mov ecx, edi
push dword [esp + 0x44]
call fcn.00440850
add esp, 0xc
jmp 0x4acb48
mov edx, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x40], edx
cmp dword [edi + 0x70], edx
jg 0x4acb75
push dword [esp + 0x34]
mov edx, 0x2f
mov ecx, edi
push 0
push dword [esp + 0x40]
call fcn.00440850
mov edx, eax
add esp, 0xc
mov dword [esp + 0x40], edx
jmp 0x4acbac
mov esi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x2f
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ace74
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
jmp 0x4ace74
mov esi, dword [eax + 8]
test esi, esi
je 0x4acbe3
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4acbe3
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4acbd3
movzx eax, word [esi + 0x32]
mov dword [esp + 0x54], eax
mov ecx, eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 8]
cmp eax, 1
jne 0x4acc31
mov al, byte [ecx + 0x13]
test al, al
jne 0x4acc16
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
xor ecx, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x5c], ecx
jmp 0x4acc86
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x9c]
xor ecx, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x5c], ecx
jmp 0x4acc86
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x18], edx
cmp eax, ecx
jg 0x4acc53
mov edi, dword [esp + 8]
add eax, edx
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x54]
sub ecx, eax
mov dword [edi + 0x1c], ecx
jmp 0x4acc70
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x54]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], edx
xor edi, edi
xor ecx, ecx
cmp di, word [esp + 0x98]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
jae 0x4accb9
lea eax, [ecx + edx]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
push dword [esp + 0x44]
call fcn.0045e220
mov ecx, dword [esp + 0x68]
add esp, 0xc
mov eax, dword [esp + 0x54]
inc ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
cmp ecx, eax
jl 0x4acc86
cmp dword [esp + 0x14], 0
je 0x4acd4f
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x40], esi
cmp dword [edi + 0x70], esi
jg 0x4accf2
push edx
push 0
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, edi
call fcn.00440850
mov edx, dword [esp + 0x24]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x40], esi
jmp 0x4acd25
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4acd40
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x54]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], esi
cmp dword [esp + 0x14], 0
jl 0x4ace34
mov eax, dword [esp + 0x54]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4acd6f
mov esi, dword [esp + 0x34]
mov ecx, edi
push esi
push eax
push edx
mov edx, 0x61
call fcn.00440850
add esp, 0xc
jmp 0x4acd9e
mov esi, dword [esp + 0x54]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x4acdc6
mov esi, dword [esp + 0x18]
mov edx, 0x8a
push esi
push dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x40]
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4acdf9
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ace14
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x54]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x14], 0
je 0x4ace38
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4ace38
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4ace38
mov esi, dword [esp + 0x18]
cmp word [esp + 0x98], 1
jne 0x4ace61
test esi, esi
je 0x4ace74
mov edx, dword [esp + 8]
mov al, byte [edx + 0x13]
cmp al, 8
jae 0x4ace74
movzx eax, al
mov dword [edx + eax*4 + 0x9c], esi
inc byte [edx + 0x13]
jmp 0x4ace74
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x54]
cmp eax, dword [edx + 0x1c]
jle 0x4ace74
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], esi
mov esi, dword [esp + 0x44]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ace9b
push 0
push dword [esp + 0x5c]
mov edx, 0xa
mov ecx, edi
push dword [esp + 0x38]
call fcn.00440850
add esp, 0xc
jmp 0x4acece
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0xa
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 + 0x40]
test ecx, ecx
je 0x4acef4
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4acee8
mov eax, 0x514d18
jmp 0x4acef1
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x30]
mov ecx, 1
mov eax, dword [esp + 0x48]
test dl, 2
cmovne eax, ecx
mov ecx, dword [esi + 0x348]
mov dword [esp + 0x48], eax
test dword [ecx + 0x2c], 0x200
je 0x4acf4e
cmp dword [esp + 0x50], 0
je 0x4acf2c
mov eax, dword [esp + 0x80]
cmp dword [ecx + 0x20], eax
jne 0x4acf4e
mov eax, dword [esp + 0x2c]
test byte [eax + 0x1c], 0x80
je 0x4acf42
mov eax, dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x4acf4e
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x80], eax
jmp 0x4acf59
mov dword [esp + 0x80], 0
test dl, 1
je 0x4acf66
mov eax, dword [esp + 0x64]
or dword [eax + 0x30], 1
mov ecx, esi
call fcn.004ba550
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xe0]
test ecx, ecx
jne 0x4acf85
xor eax, eax
mov dword [esi + 0xe0], eax
jmp 0x4acfb8
mov edx, dword [esi + 8]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4acfa0
mov eax, 0x514d18
mov eax, dword [eax + 8]
mov dword [esi + 0xe0], eax
jmp 0x4acfb8
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe0], eax
jmp 0x4acfb8
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x28]
test edx, edx
je 0x4acfc9
mov ecx, dword [esp + 0x6c]
call fcn.00459770
mov ecx, dword [esp + 0x50]
jmp 0x4aca2c
mov edx, dword [esi + 8]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4acfe4
mov eax, 0x514d18
jmp 0x4acfed
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe0], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
mov dword [esi + 0x48], eax
test eax, eax
je 0x4ad012
mov eax, dword [esp + 0x88]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4ad02c
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov dword [eax + 0xc], 0
call fcn.00459770
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4ad03e
mov eax, 0x514d18
jmp 0x4ad04b
mov eax, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0xc]
cmp dword [edi + 0x70], ecx
jg 0x4ad06f
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ad09e
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
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 ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x58]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4ad0bc
push edx
mov edx, edi
call fcn.00441050
add esp, 4
jmp 0x4ad0c5
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
mov edx, esi
mov dword [edx + 0x44], eax
mov eax, dword [esp + 0x64]
cmp byte [eax + 0x2c], 1
jbe 0x4ad194
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
test ecx, ecx
je 0x4ad134
cmp esi, dword [ecx + 0x164]
jae 0x4ad122
cmp esi, dword [ecx + 0x15c]
jb 0x4ad10a
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x4ad194
cmp esi, dword [ecx + 0x160]
jb 0x4ad122
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x4ad194
cmp dword [ecx + 0x210], 0
je 0x4ad134
mov edx, esi
call fcn.00418b30
jmp 0x4ad190
test esi, esi
je 0x4ad194
cmp dword [0x511c18], 0
je 0x4ad186
mov eax, dword [0x514e38]
test eax, eax
je 0x4ad154
push eax
call dword [0x511c68]
add esp, 4
push esi
call dword [0x511c44]
sub dword [0x514cc8], eax
add esp, 4
dec dword [0x514cec]
push esi
call dword [0x511c3c]
mov eax, dword [0x514e38]
add esp, 4
test eax, eax
je 0x4ad190
push eax
call dword [0x511c70]
jmp 0x4ad18d
push esi
call dword [0x511c3c]
add esp, 4
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x48], 0
jne 0x4aadb5
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
call fcn.004a8fa0
mov edx, dword [esp + 0x10]
xor eax, eax
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x10]
test byte [eax + 0x28], 0x40
je 0x4ad1e9
xor eax, eax
mov byte [edx + 0x3d], 0xb8
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx + 0x500064]
mov byte [edx + 0x3d], al
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x40], eax
mov al, byte [ecx + 0x5000c4]
mov edx, dword [edi + 0x6c]
mov byte [esp + 0x23], al
cmp dword [edi + 0x70], edx
jg 0x4ad243
push 0
push esi
push dword [esp + 0x44]
movzx edx, al
mov ecx, edi
call fcn.00440850
mov edx, eax
add esp, 0xc
lea eax, [edx + 1]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x44], eax
xor eax, eax
neg eax
mov byte [edx + 0x3f], 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [eax + ecx*4]
mov cl, byte [esp + 0x23]
mov byte [eax + 1], 0
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
lea eax, [edx + 1]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x44], eax
xor eax, eax
neg eax
mov byte [edx + 0x3f], 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov eax, dword [esp + 0x74]
neg eax
sbb eax, eax
add eax, 2
mov dword [esp + 0x68], eax
jmp 0x4ad2b4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x4ad575
jmp 0x4ad2d6
mov edx, dword [esp + 0x10]
xor eax, eax
test byte [esi + 0xa], 6
mov dword [esp + 0x30], eax
jne 0x4ad561
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x58]
and eax, dword [edx + 0x5c]
or ecx, eax
je 0x4ad303
mov eax, dword [esp + 0x64]
or dword [eax + 0x30], 2
jmp 0x4ad55d
mov eax, dword [esp + 0x84]
mov edx, dword [esi]
mov dword [esp + 0x14], edx
mov al, byte [eax + 0x24]
test al, 0x58
je 0x4ad3c4
mov ecx, dword [edx + 4]
test cl, 3
je 0x4ad55d
test al, 8
je 0x4ad334
test cl, 1
je 0x4ad55d
mov ecx, dword [esp + 0x64]
mov eax, dword [edx + 0x24]
cmp dword [ecx + 0x1f8], eax
jne 0x4ad34c
mov ecx, 1
xor edx, edx
jmp 0x4ad3ac
mov edx, dword [ecx + 0x1f4]
mov eax, 1
mov dword [esp + 0x88], edx
cmp edx, eax
jle 0x4ad392
add ecx, 0x1fc
nop dword [eax + eax]
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0x24]
cmp dword [ecx], edi
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x88]
je 0x4ad44c
inc eax
add ecx, 4
cmp eax, edx
jl 0x4ad370
xorps xmm0, xmm0
movlpd qword [esp + 0x90], xmm0
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x10]
and ecx, dword [eax + 0x58]
mov eax, dword [eax + 0x5c]
and eax, edx
or ecx, eax
jne 0x4ad55d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
cmp eax, 1
jne 0x4ad466
mov eax, dword [esp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0xa0], 0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xa4], 0x462ad0
mov dword [esp + 0xb8], eax
test edx, edx
je 0x4ad433
lea ecx, [esp + 0xa0]
call fcn.00454c50
cmp word [esp + 0xb4], 0
je 0x4ad46b
mov ecx, 2
mov dword [esp + 0x34], ecx
jmp 0x4ad561
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 0x4ad3ac
cmp eax, 3
jge 0x4ad490
mov eax, 0x1000
test word [esi + 0xa], ax
je 0x4ad490
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x4ad561
mov ecx, 3
mov dword [esp + 0x34], ecx
jmp 0x4ad561
mov eax, 0x200
test word [esi + 0xa], ax
je 0x4ad519
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x4ad519
mov ecx, dword [edi + 0x6c]
mov eax, edx
and edx, 1
shr eax, 1
or edx, 0x10
mov dword [esp + 0x88], eax
mov dword [esp + 0x30], ecx
cmp dword [edi + 0x70], ecx
jg 0x4ad4dc
push 0
push 0
push eax
mov ecx, edi
call fcn.00440850
add esp, 0xc
mov dword [esp + 0x30], eax
jmp 0x4ad519
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x88]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
push 0x10
push dword [esp + 0x90]
push dword [esp + 0x1c]
push dword [esp + 0x14]
call fcn.00461c00
mov ecx, dword [esp + 0x40]
add esp, 0x10
test ecx, ecx
je 0x4ad558
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4ad54c
mov eax, 0x514d18
jmp 0x4ad555
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
or word [esi + 0xa], 4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
add esi, 0x30
dec eax
mov dword [esp + 0x1c], eax
test eax, eax
jg 0x4ad2d2
mov dword [esp + 0x68], ecx
test ecx, ecx
jg 0x4ad2b0
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x2c], edx
test edx, edx
jle 0x4ad701
mov edi, eax
nop dword [eax]
test byte [edi + 0xa], 6
jne 0x4ad6ed
movzx eax, word [edi + 0xc]
mov esi, 0xb
test al, 0x82
setne cl
bt ax, si
mov esi, dword [esp + 0x78]
setb al
test al, cl
je 0x4ad6ed
mov ecx, dword [esp + 0x3c]
cmp dword [edi + 0x14], ecx
jne 0x4ad6ed
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 0x58
jne 0x4ad6ed
mov eax, dword [edi]
mov edx, esi
push 0
push 0x83
push dword [edi + 0x18]
mov dword [esp + 0x28], eax
push ecx
lea ecx, [esp + 0xf8]
mov dword [esp + 0x24], 0
call fcn.004b2050
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4ad65c
nop dword [eax]
mov edx, dword [esi + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0x14]
and eax, dword [ebp + 0x18]
or ecx, eax
jne 0x4ad64a
or edx, dword [esi + 0x24]
jne 0x4ad63d
test byte [esi + 0xc], 0x82
jne 0x4ad660
mov eax, dword [esp + 0x14]
test eax, eax
cmove eax, esi
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xe8]
call fcn.004b1d20
mov esi, eax
test esi, esi
jne 0x4ad620
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4ad6e9
test byte [esi + 0xa], 4
jne 0x4ad6e9
test byte [esi + 0xc], 1
je 0x4ad68a
mov eax, dword [esi]
test dword [eax + 4], 0x1000
je 0x4ad68a
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jg 0x4ad6e9
mov eax, dword [esi]
push 0x10
push dword [esp + 0x90]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xa8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xb8], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esp + 0xc8], xmm0
mov eax, dword [eax + 0x30]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa8]
push eax
push dword [esp + 0x14]
call fcn.00461c00
add esp, 0x10
or word [esi + 0xa], 4
mov edx, dword [esp + 0x2c]
dec edx
add edi, 0x30
mov dword [esp + 0x2c], edx
test edx, edx
jg 0x4ad5a0
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4adb05
movzx eax, byte [ecx + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x18]
mov dword [esp + 0x68], eax
test byte [eax + 0x1c], 0x80
jne 0x4ad7d3
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
cmp ecx, 2
jl 0x4ad751
lea eax, [esi + 2]
mov dword [edx + 0x20], eax
lea eax, [ecx - 2]
mov dword [edx + 0x1c], eax
jmp 0x4ad75d
mov eax, dword [edx + 0x2c]
lea esi, [eax + 1]
add eax, 2
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x10]
lea edx, [esi + 1]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x70], ecx
jg 0x4ad793
push 0
push edx
push eax
mov edx, 0x87
mov ecx, edi
call fcn.00440850
add esp, 0xc
mov dword [esp + 0x18], 1
jmp 0x4ad8b9
lea eax, [ecx + 1]
mov dword [esp + 0x18], 1
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x87
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4ad8b9
mov esi, dword [eax + 8]
test esi, esi
je 0x4ad7f0
nop word [eax + eax]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4ad7f0
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4ad7e0
movzx eax, word [esi + 0x32]
mov dword [esp + 0x18], eax
lea ecx, [eax + 1]
cmp ecx, 1
jne 0x4ad824
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4ad813
inc dword [ecx + 0x2c]
mov edx, dword [ecx + 0x2c]
jmp 0x4ad868
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov edx, dword [ecx + eax*4 + 0x9c]
jmp 0x4ad868
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], eax
cmp ecx, eax
jg 0x4ad855
mov edi, dword [esp + 8]
lea eax, [ecx + edx]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x1c]
sub eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x24]
mov dword [ecx + 0x1c], eax
jmp 0x4ad86c
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [ecx + 0x2c], eax
mov dword [esp + 0x2c], edx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x18], ecx
jbe 0x4ad8b5
lea eax, [edx + 1]
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x68]
add eax, ecx
push eax
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx*2]
mov ecx, edi
push eax
push dword [esp + 0x44]
call fcn.0045e220
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x88]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x18]
jl 0x4ad882
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
lea eax, [esi + 1]
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x30], edx
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0x70], edx
jg 0x4ad8ed
push eax
push 0
push ecx
mov edx, 0x1d
mov ecx, edi
call fcn.00440850
mov edx, eax
add esp, 0xc
mov dword [esp + 0x30], edx
jmp 0x4ad923
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ad940
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x18]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4ad944
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ad963
push esi
push edx
lea eax, [esi + 1]
mov edx, 0x61
push eax
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4ad991
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
lea edi, [esi + 1]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x6c]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0x70], edx
jg 0x4ad9bc
lea eax, [esi + 1]
mov edx, 0x8a
push eax
push esi
push ecx
mov ecx, edi
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4ad9ee
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
lea edi, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ada09
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x18]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov ecx, dword [esp + 0x14]
lea eax, [esi + 1]
mov edx, dword [edi + 0x6c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], ecx
cmp dword [edi + 0x70], edx
jg 0x4ada36
push eax
push 0
push ecx
mov edx, 0xb4
mov ecx, edi
call fcn.00440850
add esp, 0xc
mov edx, eax
jmp 0x4ada6c
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
lea edi, [esi + 1]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0xb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
jne 0x4ada89
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x18]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4ada8d
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4adaa8
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4adabe
mov eax, 0x514d18
jmp 0x4adacb
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
inc edx
mov dword [eax + 8], ecx
cmp edx, 1
jne 0x4adaf6
test esi, esi
je 0x4adb05
mov ecx, dword [esp + 8]
mov al, byte [ecx + 0x13]
cmp al, 8
jae 0x4adb05
movzx eax, al
mov dword [ecx + eax*4 + 0x9c], esi
inc byte [ecx + 0x13]
jmp 0x4adb05
mov ecx, dword [esp + 8]
cmp edx, dword [ecx + 0x1c]
jle 0x4adb05
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x20], esi
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x4adb75
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x6c]
mov dword [ecx + 0x1c], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4adb37
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4adb66
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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 eax, dword [esp + 0x10]
cmp dword [eax + 0x38], 0
je 0x4adbe5
mov esi, dword [eax + 0x38]
jmp 0x4adb80
mov esi, dword [eax + 0x38]
test esi, esi
je 0x4adc48
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 8]
cmp dword [edi + 0x70], ecx
jg 0x4adba1
push 0
push edx
push 0
mov edx, 0x4a
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4adbd4
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x4a
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 edx, dword [esp + 8]
mov eax, dword [edi + 0x6c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
inc byte [edx + 0x1a]
mov ecx, dword [esp + 0x78]
xor edi, edi
mov esi, dword [ecx + 0x18]
cmp dword [ecx + 0x14], edi
jle 0x4adc48
test byte [esi + 0xa], 6
jne 0x4adc37
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x28]
and ecx, dword [eax + 0x58]
mov eax, dword [esi + 0x2c]
and eax, dword [edx + 0x5c]
or ecx, eax
mov edx, dword [esp + 8]
jne 0x4adc37
mov eax, dword [esp + 0x84]
test byte [eax + 0x24], 0x40
jne 0x4adc37
push 0x10
push dword [esp + 0x90]
push dword [esi]
push edx
call fcn.00461c00
add esp, 0x10
or word [esi + 0xa], 4
mov eax, dword [esp + 0x78]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0x14]
mov eax, dword [esp + 0x10]
jl 0x4adbf3
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
pop edi
pop esi
mov edx, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret