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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x10], edx
movzx eax, byte [edi + 0x34]
mov ebx, dword [esi + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x48]
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x1e4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x20], edx
mov edx, dword [ebx + edx*8 + 0x30]
test eax, eax
mov dword [esp + 0x30], edx
jle 0x4aaa7e
xor ecx, ecx
cmp dword [esi + ecx*4 + 0x1e8], edx
je 0x4aaa84
inc ecx
cmp eax, ecx
jne 0x4aaa70
xor eax, eax
xor edx, edx
jmp 0x4aaa9e
mov eax, 1
xor edx, edx
xor esi, esi
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov esi, dword [ebp + 8]
not eax
not edx
mov ecx, dword [ebp + 0xc]
and edx, dword [ebp + 0x18]
and eax, dword [ebp + 0x14]
mov dword [edi + 0x54], edx
mov dword [edi + 0x50], eax
mov edx, edi
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
shrd eax, ebx, cl
shr ebx, cl
test cl, 0x20
mov ecx, dword [edx + 0x38]
cmove ebx, eax
dec ecx
mov dword [edx + 0x38], ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0xc], ecx
mov dword [esp + 8], ecx
mov ecx, dword [edx + 0x38]
dec ecx
mov dword [edx + 0x38], ecx
mov dword [edi + 0x18], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x70], ecx
cmp byte [edi + 0x34], 0
je 0x4aab63
mov eax, dword [esp + 0x6c]
test byte [eax + edx*8 + 0x2c], 8
je 0x4aab63
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
jle 0x4aab4d
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], 0
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x20]
jmp 0x4aab63
mov edx, 0x45
push 0
push eax
push 0
call fcn.0046c600
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x4aab92
mov edi, dword [ebp + 0xc]
imul eax, edi, 0x58
lea ecx, [eax + esi + 0x2e8]
mov eax, edi
nop dword [eax]
cmp dword [ecx], 0
jne 0x4aab92
add ecx, 0xffffffa8
cmp eax, 1
lea eax, [eax - 1]
jg 0x4aab80
xor eax, eax
mov edi, dword [esp + 0x6c]
lea ecx, [esi + 0x48]
mov dword [esp + 0x7c], ecx
mov ecx, edx
mov dl, byte [edi + edx*8 + 0x2d]
test dl, 0x10
jne 0x4aac83
mov ecx, ebx
and ecx, 1
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x24]
test edi, 0x400
mov dword [esp + 0xc], edi
jne 0x4aacc4
imul eax, eax, 0x58
test dword [esp + 0xc], 0x100
mov eax, dword [esi + eax + 0x2f4]
je 0x4aad6c
mov ecx, dword [esp + 0xc]
and ecx, 5
je 0x4aad6c
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + 0x30]
mov edi, dword [ebx + 0x2c]
mov ecx, ebx
mov edx, dword [eax]
lea eax, [edi + 1]
mov dword [ebx + 0x2c], eax
mov dword [esp + 8], edx
push eax
push dword [esp + 0x20]
push 0
push dword [ebp + 0x10]
call fcn.004b5610
add esp, 0x10
inc edi
je 0x4aac3d
cmp eax, edi
je 0x4aac3d
movzx ecx, byte [ebx + 0x13]
cmp ecx, 7
ja 0x4aac3d
mov edx, ecx
inc dl
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x94], edi
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ecx + 0x6c]
mov edi, dword [ebx + 0x10]
cmp dword [ecx + 0x70], esi
jle 0x4aaff0
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x30]
mov dword [edx + ecx*4], 0x1f
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4ab003
mov eax, dword [edi + ecx*8 + 0x20]
mov esi, dword [edi + ecx*8 + 0x24]
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x4aacf2
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
mov dword [edx + ecx*4], 0xd
mov dword [edx + ecx*4 + 4], esi
mov dword [edx + ecx*4 + 8], 0
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4aad05
movzx ecx, word [ecx + 0x28]
mov edx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 8], ecx
lea eax, [ecx + 2]
mov ecx, dword [edx + 0x1c]
sub ecx, eax
jge 0x4aadff
mov ecx, dword [edx + 0x2c]
add eax, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov dword [edx + 0x2c], eax
jmp 0x4aae0e
mov ecx, edi
mov edx, 0xd
push eax
push 0
push esi
call fcn.0046c600
add esp, 0xc
mov eax, dword [edi + 0x6c]
mov ebx, dword [ebp + 0x10]
cmp dword [edi + 0x70], eax
jle 0x4aad41
lea ecx, [eax + 1]
lea edx, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov edi, dword [esp + 8]
mov dword [ecx + edx*4], 0xe
mov dword [ecx + edx*4 + 4], esi
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], 0
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x4aad57
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0xc]
push esi
call fcn.0046c600
add esp, 0xc
mov esi, dword [ebp + 8]
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x35], 0xb
xor eax, eax
mov edx, dword [esp + 0x20]
jmp 0x4abab3
mov ecx, dword [esp + 0xc]
and ecx, 0x102
cmp ecx, 0x102
jne 0x4ab02c
xor edx, edx
test byte [esp + 0xc], 0x20
mov esi, 0
mov ebx, 0
je 0x4aada3
mov ecx, dword [esp + 0x14]
mov ebx, 1
mov ecx, dword [ecx + 0x30]
mov esi, dword [ecx]
test byte [esp + 0xc], 0x10
je 0x4aadb4
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x30]
mov edx, dword [ecx + ebx*4]
mov edi, dword [esp + 0x1c]
mov ebx, edx
test edi, edi
cmove ebx, esi
cmove esi, edx
test ebx, ebx
mov dword [esp + 0x28], esi
je 0x4ab4c8
mov dword [esp + 0xc0], 0xffffffff
mov edi, dword [ebx]
mov edx, dword [edi + 0x10]
mov al, byte [edx]
cmp al, 0xad
jne 0x4aade7
mov al, byte [edx + 2]
cmp al, 0x88
je 0x4ab6c7
cmp al, 0xae
jne 0x4ab6d8
lea eax, [edx + 0x14]
jmp 0x4ab6cd
mov esi, dword [edx + 0x20]
add eax, esi
mov dword [esp + 0x24], esi
mov dword [edx + 0x20], eax
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp + 0x10]
cmp word [esp + 8], 0
mov esi, dword [eax + 0xc]
je 0x4aae7d
mov eax, dword [esp + 0x24]
xor ebx, ebx
lea edi, [eax + 2]
jmp 0x4aae4b
mov ecx, dword [edx]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
push 1
push eax
call fcn.004b5e50
add esp, 8
inc ebx
cmp dword [esp + 8], ebx
je 0x4aae7d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x4aae44
test byte [edx + 0xc], 1
lea eax, [edi + ebx]
je 0x4aae30
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x20]
push ebx
mov esi, dword [ebp + 0x10]
push esi
call fcn.004b5610
add esp, 0x10
mov esi, dword [esi + 0x10]
jmp 0x4aae44
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x18]
cmp dword [edi + 0x70], ecx
jle 0x4aaec1
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [esp + 0x24]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4aaeda
mov ecx, edi
mov edx, 0x45
push 0
mov ebx, dword [esp + 0x28]
push ebx
push eax
call fcn.0046c600
mov eax, ebx
add esp, 0xc
mov ecx, dword [edi + 0x6c]
inc eax
cmp dword [edi + 0x70], ecx
jle 0x4aaf14
lea edx, [ecx + 1]
mov ebx, dword [esp + 8]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4aaf2a
mov ecx, edi
mov edx, 0x45
push 0
push eax
push dword [esp + 0x10]
call fcn.0046c600
add esp, 0xc
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp byte [eax + 0x1c], 1
mov ebx, dword [eax + 0x20]
mov eax, dword [edi + 0x6c]
sbb ecx, ecx
cmp dword [edi + 0x70], eax
mov dword [esp + 0x1c], ecx
jle 0x4aaf7e
lea ecx, [eax + 1]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x30]
lea edx, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + edx*4], 9
mov dword [ecx + edx*4 + 4], ebx
mov ebx, dword [esp + 0xc]
mov dword [ecx + edx*4 + 8], esi
mov esi, dword [esp + 0x24]
mov dword [ecx + edx*4 + 0xc], esi
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x4aaf96
mov ecx, edi
mov edx, 9
push dword [esp + 0x24]
push esi
push dword [esp + 0x38]
call fcn.0046c600
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ecx, dword [edi]
mov esi, dword [ebp + 8]
or edx, 0xfffffff9
cmp byte [ecx + 0x51], 0
je 0x4aafb6
push ebx
call fcn.00448c40
add esp, 4
jmp 0x4ab09f
test eax, eax
jns 0x4aafc2
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
dec eax
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov edi, dword [ecx + 0x68]
cmp byte [edi + eax*4 + 1], 0
je 0x4ab08f
mov dword [esp + 0x1c], edx
lea edx, [edi + eax*4]
push dword [esp + 0x1c]
push ebx
call fcn.0046c7f0
add esp, 8
jmp 0x4ab09f
mov edx, 0x1f
push eax
push edi
push dword [esp + 0x38]
call fcn.0046c600
add esp, 0xc
mov byte [ebx + 0x35], 0xad
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebx + 0x54]
and ecx, dword [esi + 0x2c]
and eax, dword [esi + 0x28]
or eax, ecx
jne 0x4abaae
or byte [esi + 0xa], 4
jmp 0x4abaae
test dword [esp + 0xc], 0x200
jne 0x4ab457
test dword [esp + 0xc], 0x2000
jne 0x4ab52e
test dl, 0x20
jne 0x4ab7d5
mov ebx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0x30]
mov cl, byte [ebx + 0x514e34]
movzx edx, byte [ebx + str.__LNQ]
mov byte [esi + 0x35], cl
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x38], edi
push 0
push eax
push edi
call fcn.0046c5a0
add esp, 0xc
inc eax
mov dword [esi + 0x3c], eax
mov byte [esi + 0x37], 1
mov esi, dword [ebp + 8]
jmp 0x4aad61
test ebx, ebx
je 0x4ab09f
mov ecx, edx
lea edx, [edi + eax*4 + 1]
mov dword [edi + eax*4 + 0x10], ebx
mov byte [edx], cl
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
mov ecx, 0xad
mov byte [eax + 0x1c], 0
mov eax, dword [esp + 0x30]
mov dword [edx + 0x38], eax
mov eax, 0x3d
cmp byte [esi + 0x2e], 0
cmove ecx, eax
mov eax, dword [esp + 0x10]
mov byte [edx + 0x35], cl
mov eax, dword [eax + 0x6c]
mov dword [edx + 0x3c], eax
xor eax, eax
cmp word [esp + 8], 0
je 0x4aad63
mov eax, dword [edx + 0x40]
add dword [esp + 0x24], 2
mov dword [esp + 0x28], eax
jmp 0x4ab1cb
mov eax, dword [ebx]
mov ecx, dword [esp + 0x2c]
mov edx, 0x35
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x4ab378
mov ecx, eax
mov dword [eax], 0
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0xad
mov word [eax + 0x22], 0xffff
mov edx, dword [esp + 0x24]
add ecx, 0x34
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
mov byte [eax + 0x34], 0
mov dword [eax + 0x18], 1
mov dword [esi + 0x10], eax
lea ecx, [edx + ecx]
mov dword [eax + 0x1c], ecx
push 0x10
mov eax, dword [ebp + 0x10]
push dword [eax + 0x18]
push esi
push dword [esp + 0x24]
call fcn.0048b810
add esp, 0x10
mov ecx, dword [esp + 0x2c]
mov edx, esi
mov dword [esi + 0xc], 0
call fcn.00469b50
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp dword [esp + 0xc], 1
jle 0x4ab44b
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov eax, dword [edx + 0x30]
mov dword [esp + 0xc], esi
mov ebx, dword [eax + esi*4 - 4]
movzx eax, word [ebx + 0xc]
mov ecx, eax
and ecx, 1
sub dword [esp + 0x28], ecx
lea ecx, [esi - 1]
cmp esi, 0x10
mov dword [esp + 8], ecx
jg 0x4ab2b0
movzx ecx, word [edx + 0x1e]
mov esi, dword [esp + 8]
bt ecx, esi
jae 0x4ab2b0
movzx ecx, word [ebx + 0xa]
test cl, 4
jne 0x4ab1c0
lea edx, [ebx + 0xa]
xor eax, eax
nop word [eax + eax]
mov esi, dword [ebp + 0x10]
cmp dword [esi], 0
je 0x4ab230
mov esi, dword [ebx]
test byte [esi + 4], 1
je 0x4ab1c0
mov dword [esp + 0x1c], edx
mov esi, dword [ebx + 0x28]
mov edi, dword [ebx + 0x2c]
mov edx, ebx
mov ebx, dword [ebp + 0x10]
and edi, dword [ebx + 0x54]
and esi, dword [ebx + 0x50]
mov ebx, edx
mov edx, dword [esp + 0x1c]
or esi, edi
jne 0x4ab1c0
test eax, eax
mov esi, 0x200
mov edi, 4
cmove esi, edi
test ecx, 0x400
cmove esi, edi
or esi, ecx
mov word [edx], si
mov edx, dword [ebx + 0x10]
test edx, edx
js 0x4ab1c0
mov ecx, dword [ebx + 4]
lea esi, [edx + edx*2]
shl esi, 4
mov ecx, dword [ecx + 0x14]
dec byte [ecx + esi + 0xe]
jne 0x4ab1c0
lea ebx, [ecx + esi]
lea edx, [ecx + esi + 0xa]
movzx ecx, word [ecx + esi + 0xa]
dec eax
test cl, 4
je 0x4ab220
jmp 0x4ab1c0
test al, 1
je 0x4ab1c0
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
mov cl, byte [eax]
cmp cl, 0xad
jne 0x4ab2c7
mov cl, byte [eax + 2]
cmp cl, 0x88
je 0x4ab2d6
cmp cl, 0xae
jne 0x4ab2e7
add eax, 0x14
jmp 0x4ab2dc
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jne 0x4ab1c0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x51], 0
jne 0x4ab399
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
test eax, eax
jns 0x4ab312
mov eax, dword [ecx + 0x6c]
dec eax
mov edx, dword [ecx]
mov edi, 0x51ea94
mov dword [esp + 0x1c], ebx
cmp byte [edx + 0x51], 0
jne 0x4ab32c
lea edi, [eax + eax*4]
shl edi, 2
add edi, dword [ecx + 0x68]
mov eax, dword [edi + 4]
mov ebx, dword [ecx + 0x6c]
mov dl, byte [edi]
mov esi, dword [edi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
cmp dword [ecx + 0x70], ebx
jle 0x4ab384
lea edi, [ebx + 1]
lea ebx, [ebx + ebx*4]
mov dword [ecx + 0x6c], edi
mov edi, dword [ecx + 0x68]
mov ecx, dword [esp + 0x3c]
mov byte [edi + ebx*4], dl
mov word [edi + ebx*4 + 2], 0
mov dword [edi + ebx*4 + 4], ecx
mov dword [edi + ebx*4 + 8], esi
mov dword [edi + ebx*4 + 0xc], eax
mov dword [edi + ebx*4 + 0x10], 0
mov byte [edi + ebx*4 + 1], 0
jmp 0x4ab395
mov dword [esi + 0x10], 0
jmp 0x4ab19f
movzx edx, dl
push eax
push esi
push dword [esp + 0x44]
call fcn.0046c600
add esp, 0xc
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, 0x34
mov ecx, dword [eax]
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x4ab1c0
mov ecx, eax
mov dword [eax], 0
mov esi, eax
mov dword [eax + 0x20], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0x35
mov word [eax + 0x22], 0xffff
call fcn.004c5fa0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x78]
cmp eax, dword [esi + 0x18]
jge 0x4ab0ee
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x20]
call fcn.0042af90
add esp, 0xc
jmp 0x4ab0ee
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x20]
jmp 0x4abab1
mov esi, dword [esp + 0x14]
test byte [esp + 0xc], 0x20
mov ecx, 0
mov dword [esp + 8], 0
movzx eax, word [esi + 0x1a]
movzx edi, word [esi + 0x18]
mov dword [esp + 0x44], eax
movzx eax, word [esi + 0x1c]
mov edx, edi
mov word [esp + 0x5c], ax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov eax, 0
je 0x4ab4aa
mov ecx, dword [esi + 0x30]
movzx eax, word [esp + 0x44]
lea edx, [edi + 1]
mov ecx, dword [ecx + edi*4]
test byte [esp + 0xc], 0x10
mov dword [esp + 0x50], edi
mov dword [esp + 0x48], ecx
jne 0x4ab635
mov dword [esp + 0x40], eax
xor edx, edx
jmp 0x4ac166
mov ebx, dword [esp + 0x10]
xor ecx, ecx
test edi, edi
sete cl
lea edx, [ecx*4 + 0x21]
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jle 0x4ab7bb
mov edi, dword [esp + 0x10]
lea esi, [ecx + 1]
mov ebx, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], esi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov esi, dword [esi + 0x68]
mov byte [esi + ecx*4], dl
mov word [esi + ecx*4 + 2], 0
mov dword [esi + ecx*4 + 4], edi
mov dword [esi + ecx*4 + 8], eax
mov dword [esi + ecx*4 + 0xc], 0
mov dword [esi + ecx*4 + 0x10], 0
mov byte [esi + ecx*4 + 1], 0
jmp 0x4ab7cc
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [ebp + 0x10]
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x48], eax
inc eax
inc edx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov dword [esp + 0x5c], edx
mov eax, dword [edi + 0x38]
dec eax
mov dword [esp + 0x68], eax
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*8 + 0x18]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov eax, dword [eax + 0x1c]
mov byte [ebx + 0x35], 0x41
mov dword [ebx + 0x38], edx
movzx ebx, byte [esi + 0x2c]
mov dword [esp + 0x38], eax
cmp ebx, 2
jb 0x4ab7e1
mov dword [esp + 0x1c], ebx
sub ebx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x2c]
lea eax, [ebx + ebx*8]
lea edx, [eax*8 + 8]
push 0
call fcn.0042cf30
add esp, 4
test eax, eax
je 0x4ac121
mov edx, eax
movzx eax, bl
mov ecx, dword [esp + 0x6c]
cmp ebx, 2
mov ebx, dword [ebp + 0x10]
mov dword [edx + 4], eax
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], edx
lea edi, [edx + 8]
lea esi, [ecx + eax*8 + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x18]
jl 0x4ab7e8
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 4]
add ebx, 0x8c
not edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
add edx, dword [esp + 0x1c]
add eax, 0x50
movzx ecx, byte [ebx]
mov esi, dword [esp + 0x14]
mov edi, eax
add eax, 0x48
add ebx, 0x58
dec edx
lea ecx, [ecx + ecx*8]
lea esi, [esi + ecx*8 + 8]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
jne 0x4ab609
mov edi, dword [esp + 0x18]
mov esi, dword [ebp + 8]
jmp 0x4ab7e8
mov ecx, dword [esi + 0x30]
movzx edi, word [esp + 0x5c]
mov edx, dword [ecx + edx*4]
cmp eax, edi
cmova edi, eax
mov dword [esp + 0x40], edi
test byte [edx + 0xb], 1
mov dword [esp + 8], edx
je 0x4ab6b0
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [ebp + 0x10]
mov edx, 0x45
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov dword [edi + 0x2c], eax
mov ecx, esi
push 0
push eax
push 1
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esi + 0x6c]
xor edx, edx
mov esi, dword [esp + 0x14]
mov dword [edi + 0x30], eax
mov eax, dword [edi + 0x2c]
lea ecx, [eax + eax]
mov dword [edi + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x50]
mov ecx, dword [ecx + 0x1c]
cmp byte [ecx + edi], 1
mov ecx, dword [ebp + 0x10]
sete dl
xor edx, dword [esp + 0x1c]
lea eax, [edx + eax*2]
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4ab842
mov edi, dword [esp + 0x50]
xor edx, edx
jmp 0x4ac166
mov eax, dword [edx + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 2
jge 0x4ab798
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc0]
push eax
call fcn.00488da0
add esp, 4
movzx edx, word [ebx + 0xa]
mov dword [esp + 0x2c], eax
test dl, 4
jne 0x4ab785
lea eax, [ebx + 0xa]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
je 0x4ab71c
mov esi, dword [ebx]
test byte [esi + 4], 1
je 0x4ab785
mov esi, dword [ebx + 0x28]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebx + 0x2c]
and ecx, dword [eax + 0x54]
and esi, dword [eax + 0x50]
or esi, ecx
jne 0x4ab785
cmp dword [esp + 0x14], 0
mov ecx, 0x200
mov eax, 4
cmove ecx, eax
test edx, 0x400
cmove ecx, eax
or ecx, edx
mov edx, dword [esp + 0xc]
mov word [edx], cx
mov ecx, dword [ebx + 0x10]
test ecx, ecx
js 0x4ab785
mov edx, dword [ebx + 4]
lea esi, [ecx + ecx*2]
shl esi, 4
mov edx, dword [edx + 0x14]
dec byte [edx + esi + 0xe]
jne 0x4ab785
lea eax, [edx + esi + 0xa]
lea ebx, [edx + esi]
movzx edx, word [edx + esi + 0xa]
dec dword [esp + 0x14]
mov dword [esp + 0xc], eax
test dl, 4
je 0x4ab70c
movzx eax, byte [edi]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
add eax, 0xffffffca
jmp 0x4ab8a6
mov esi, dword [esp + 0x18]
mov al, byte [esi + 0x13]
test al, al
je 0x4ab875
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x94]
jmp 0x4ab87c
mov ecx, ebx
push 0
push eax
push dword [esp + 0x38]
call fcn.0046c600
add esp, 0xc
mov edi, dword [esp + 0x28]
jmp 0x4ab92f
mov eax, dword [ebp + 0x10]
mov byte [eax + 0x35], 0xad
jmp 0x4aad61
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
test byte [esi + 0x28], 0x10
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0
jne 0x4acf8a
mov eax, dword [esp + 8]
cmp byte [eax + 0x24], 0
js 0x4ac12c
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x10]
mov edx, 0x48
inc eax
mov dword [edi + 0x2c], eax
push 0
mov dword [esp + 0x50], eax
push eax
push 0
call fcn.0046c5a0
add esp, 0xc
jmp 0x4acf7f
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x50]
mov eax, dword [ecx + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x4ac156
mov ecx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 4]
cmp byte [ecx + eax*4 + 0xc], 0
je 0x4ac160
xor edx, edx
jmp 0x4ac162
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
mov dword [esp + 0xc0], eax
mov ebx, dword [esp + 0x30]
mov ecx, esi
mov edx, dword [edi + 0x10]
push 1
mov dword [esp + 0x30], eax
push eax
call fcn.004b5e50
add esp, 8
mov al, byte [edi]
inc al
and al, 2
or al, 1
movzx eax, al
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 0x514e0c]
mov edi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edi
jle 0x4ab8f1
lea edx, [edi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x2c]
mov byte [edx + ecx*4], al
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], ebx
mov ebx, dword [esp + 8]
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x4ab905
movzx edx, al
push dword [esp + 0x2c]
push dword [esp + 0xc]
push ebx
call fcn.0046c600
add esp, 0xc
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0x28]
test eax, eax
je 0x4ab92b
movzx ecx, byte [esi + 0x13]
cmp ecx, 7
ja 0x4ab92b
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0x94], eax
mov ebx, dword [esp + 0x10]
test edi, edi
je 0x4ab96c
mov ecx, dword [esp + 0x18]
mov ebx, dword [edi]
mov esi, dword [ecx + 0x2c]
inc esi
mov dword [ecx + 0x2c], esi
mov edx, dword [ebx + 0x10]
push 1
push esi
call fcn.004b5e50
add esp, 8
mov eax, dword [ebx + 0x10]
mov cl, byte [eax]
cmp cl, 0xad
mov edx, ecx
jne 0x4ab95d
mov dl, byte [eax + 2]
cmp dl, 0x88
je 0x4ab982
cmp dl, 0xae
jne 0x4ab98f
lea edx, [eax + 0x14]
jmp 0x4ab988
mov edx, dword [esp + 0x20]
mov edi, 0xad
mov dword [esp + 0xc], 0
jmp 0x4aba86
mov edx, dword [eax + 0x14]
add edx, 0x1c
mov edx, dword [edx]
cmp dword [edx], 1
jg 0x4ab9ab
mov dl, byte [ebx]
cmp dl, 0x38
je 0x4ab99b
cmp dl, 0x36
jne 0x4ab9ab
xor edx, edx
cmp dword [esp + 0x1c], 0
sete dl
lea edx, [edx + edx + 0x37]
jmp 0x4ab9b3
mov edx, dword [esp + 0x1c]
lea edx, [edx + edx + 0x36]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
cmp cl, 0xad
jne 0x4ab9c7
mov cl, byte [eax + 2]
cmp cl, 0x88
mov dword [esp + 0xc], esi
je 0x4ab9da
cmp cl, 0xae
jne 0x4ab9eb
add eax, 0x14
jmp 0x4ab9e0
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
cmp dword [eax], 1
jg 0x4aba82
mov ecx, dword [esp + 0x28]
movzx edx, word [ecx + 0xa]
test dl, 4
jne 0x4aba7e
lea eax, [ecx + 0xa]
mov edi, ecx
mov dword [esp + 0x14], eax
xor eax, eax
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
je 0x4aba17
mov esi, dword [edi]
test byte [esi + 4], 1
je 0x4aba7a
mov esi, dword [edi + 0x28]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [edi + 0x2c]
and ecx, dword [ebx + 0x54]
and esi, dword [ebx + 0x50]
or esi, ecx
jne 0x4aba7a
test eax, eax
mov ecx, 0x200
mov esi, 4
cmove ecx, esi
test edx, 0x400
cmove ecx, esi
mov esi, dword [esp + 0x14]
or ecx, edx
mov word [esi], cx
mov esi, dword [edi + 0x10]
test esi, esi
js 0x4aba7a
mov ecx, dword [edi + 4]
lea esi, [esi + esi*2]
shl esi, 4
mov edx, dword [ecx + 0x14]
dec byte [edx + esi + 0xe]
jne 0x4aba7a
lea ecx, [edx + esi + 0xa]
lea edi, [edx + esi]
movzx edx, word [edx + esi + 0xa]
dec eax
mov dword [esp + 0x14], ecx
test dl, 4
je 0x4aba07
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x6c]
mov esi, ebx
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x10]
xor bl, 5
cmp edi, 0xad
mov byte [ecx + 0x35], bl
mov ebx, dword [esp + 0x30]
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x3c], eax
jne 0x4abd26
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x28], eax
cmp eax, 1
mov eax, dword [esp + 0x6c]
mov ecx, 1
adc ecx, 0
lea eax, [eax + edx*8 + 0x2c]
mov dword [esp + 0x14], eax
jmp 0x4abadd
mov esi, dword [ebp + 8]
test eax, eax
mov ecx, eax
jle 0x4abd0f
mov ebx, dword [esi + 0x54]
test ebx, ebx
jle 0x4abfb5
mov edi, dword [esi + 0x5c]
inc ebx
xor eax, eax
mov dword [esp + 0x1c], ecx
nop word cs:[eax + eax]
nop dword [eax]
mov esi, eax
movzx eax, word [edi + 0xa]
test al, 6
jne 0x4abb24
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x50]
mov edx, dword [edx + 0x54]
and edx, dword [edi + 0x2c]
and ecx, dword [edi + 0x28]
or ecx, edx
je 0x4abb31
mov eax, dword [ebp + 8]
or byte [eax + 0x30], 2
mov eax, esi
dec ebx
add edi, 0x30
cmp ebx, 1
jg 0x4abb00
jmp 0x4abad0
mov ecx, dword [esp + 0x14]
mov edx, dword [edi]
test byte [ecx], 8
je 0x4abb42
test byte [edx + 4], 1
je 0x4abb24
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], edx
cmp ecx, 1
jne 0x4abbc9
mov eax, dword [ebp + 0x10]
test edx, edx
pxor xmm0, xmm0
lea ecx, [esp + 0x80]
mov eax, dword [eax + 4]
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xc4], 0x4b4340
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x80], eax
je 0x4abbce
lea ecx, [esp + 0xc0]
call fcn.0048d1b0
cmp word [esp + 0xd4], 0
mov eax, 2
jne 0x4abb26
jmp 0x4abbce
cmp ecx, 2
jg 0x4abbdd
movzx eax, word [edi + 0xa]
test eax, 0x1000
jne 0x4abc94
test eax, 0x200
je 0x4abc7c
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4abc7c
mov ecx, eax
shr eax, 1
and ecx, 1
lea ecx, [ecx + ecx + 0x12]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x4abca3
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0xc]
inc edx
mov dword [ecx + 0x6c], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x68]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
mov byte [ecx + eax*4], dl
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], 0
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x4abcb8
push 0x10
push dword [esp + 0x74]
push dword [esp + 0x10]
push dword [esp + 0x24]
call fcn.0048b810
add esp, 0x10
jmp 0x4abd06
test esi, esi
mov eax, 3
cmove esi, eax
jmp 0x4abb24
mov edx, dword [esp + 0x2c]
push 0
push 0
push eax
call fcn.0046c600
add esp, 0xc
mov dword [esp + 0xc], eax
push 0x10
push dword [esp + 0x74]
push dword [esp + 0x10]
push dword [esp + 0x24]
call fcn.0048b810
add esp, 0x10
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4abd06
mov eax, dword [esp + 0x10]
mov ecx, 0x51ea94
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x4abd03
mov edx, dword [esp + 0xc]
lea ecx, [eax - 1]
test edx, edx
cmovns ecx, edx
mov edx, dword [esp + 0x10]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
or byte [edi + 0xa], 4
jmp 0x4abb24
mov edi, dword [esi + 0x54]
test edi, edi
jle 0x4abfb5
mov ebx, dword [esi + 0x5c]
pcmpeqd xmm0, xmm0
jmp 0x4abe0f
mov eax, dword [esp + 0x18]
mov ebx, esi
mov esi, dword [eax + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4ac08f
lea ecx, [eax + 1]
mov edx, dword [esp + 0x30]
lea eax, [eax + eax*4]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
mov dword [ecx + eax*4], 0x7f
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4ac0a5
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xb0], ecx
movsd xmm0, qword [eax + 0x28]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x90], xmm0
movq xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x88], xmm1
movq qword [esp + 0x80], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x8c], eax
push 0x10
push dword [esp + 0x74]
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x24]
call fcn.0048b810
pcmpeqd xmm0, xmm0
add esp, 0x10
nop
add ebx, 0x30
cmp edi, 1
lea edi, [edi - 1]
jle 0x4abfb5
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
mov dword [esp + 0xb0], 0xffffffff
test byte [ebx + 0xa], 6
jne 0x4abe00
movzx eax, word [ebx + 0xc]
test al, 0x82
je 0x4abe00
and eax, 0x800
je 0x4abe00
mov eax, dword [esp + 0x30]
cmp dword [ebx + 0x14], eax
jne 0x4abe00
mov eax, dword [esp + 0x14]
test byte [eax], 8
jne 0x4abe00
mov eax, dword [ebx]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x1c]
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd4], 0x83
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], edx
mov word [esp + 0xd1], 0x101
cmp eax, 0xfffffffe
je 0x4abe00
lea ecx, [esp + 0xc0]
mov word [esp + 0x108], ax
call fcn.004b0720
pcmpeqd xmm0, xmm0
test eax, eax
je 0x4abe00
mov dword [esp + 0x1c], 0
jmp 0x4abf51
mov ecx, dword [esp + 0x1c]
test ecx, ecx
cmove ecx, eax
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xc0]
call fcn.004b0720
test eax, eax
pcmpeqd xmm0, xmm0
je 0x4abf75
mov esi, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ecx, esi
mov dword [esp + 8], edx
and edx, dword [ebp + 0x18]
and ecx, dword [ebp + 0x14]
or ecx, edx
jne 0x4abf3d
or esi, dword [esp + 8]
jne 0x4abf30
test byte [eax + 0xc], 0x82
je 0x4abf30
jmp 0x4abf81
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4abe00
test byte [eax + 0xa], 4
jne 0x4abe00
test byte [eax + 0xc], 1
je 0x4abd73
mov eax, dword [eax]
test byte [eax + 5], 8
je 0x4abd75
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0x1c]
cmp dword [ecx], 1
jle 0x4abd75
jmp 0x4abe00
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x4ac07e
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
mov esi, dword [ecx + 0x6c]
mov dword [edx + 0x1c], esi
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x4ac00c
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x45
mov dword [edx + ecx*4 + 4], 1
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4ac01e
mov edx, 0x45
push 0
push eax
push 1
call fcn.0046c600
add esp, 0xc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
test eax, eax
jle 0x4ac07e
mov ecx, dword [ebp + 8]
xor edi, edi
mov esi, dword [ecx + 0x5c]
jmp 0x4ac048
inc edi
add esi, 0x30
cmp edi, eax
jge 0x4ac07e
test byte [esi + 0xa], 6
jne 0x4ac040
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x50]
mov edx, dword [edx + 0x54]
and edx, dword [esi + 0x2c]
and ecx, dword [esi + 0x28]
or ecx, edx
jne 0x4ac040
push 0x10
push dword [esp + 0x74]
push dword [esi]
push ebx
call fcn.0048b810
add esp, 0x10
mov eax, dword [ebp + 8]
or byte [esi + 0xa], 4
mov eax, dword [eax + 0x54]
jmp 0x4ac040
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x54]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebx
mov edx, 0x7f
push 0
push esi
push dword [esp + 0x38]
call fcn.0046c600
add esp, 0xc
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x4ac0e8
lea ecx, [eax + 1]
mov edx, edi
lea eax, [eax + eax*4]
mov edi, dword [esp + 8]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
mov byte [ecx + eax*4], dl
mov edx, dword [esp + 0xc]
mov word [ecx + eax*4 + 2], 0
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], 0
mov byte [ecx + eax*4 + 1], 0
jmp 0x4ac0fd
mov ecx, ebx
mov edx, edi
push esi
push dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.0046c600
add esp, 0xc
mov eax, dword [ebx + 0x6c]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x20]
test eax, eax
jle 0x4abab1
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x53
jmp 0x4abab1
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
jmp 0x4ac087
mov eax, dword [eax + 8]
xor edx, edx
test eax, eax
je 0x4acf47
movzx ecx, word [eax + 0x37]
and ecx, 3
cmp cx, 2
je 0x4acf45
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4ac139
jmp 0x4acf47
cmp ax, 0xfffe
jne 0x4ab86e
mov dl, 1
mov ecx, dword [esp + 0x48]
mov eax, 0x80030
and eax, dword [esi + 0x24]
xor esi, esi
cmp eax, 0x80000
jne 0x4ac1c2
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov esi, dword [eax + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
mov dword [ecx + 0x24], esi
cmp dword [ecx], 0
je 0x4ac1a3
mov ecx, dword [esp + 0x10]
mov edx, 0x45
push 0
push esi
push 0
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov dl, 1
mov dword [esp + 0x40], 1
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x68], esi
movzx eax, word [eax + 0x32]
cmp di, ax
jae 0x4ac1ec
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x1c]
cmp byte [ecx + edi], 0
setne cl
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x48]
jne 0x4ac1f8
cmp dword [esp + 0x1c], 0
je 0x4ac221
cmp ax, di
jne 0x4ac221
movzx eax, byte [esp + 0x44]
movzx ecx, word [esp + 0x5c]
mov word [esp + 0x5c], ax
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x64], eax
jmp 0x4ac239
mov eax, dword [esp + 8]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ebx, dword [ecx + 0x2c]
mov esi, dword [ecx]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], ebx
mov edx, dword [eax + 0x48]
movzx eax, word [edx + 0x2a]
movzx edi, word [edx + 0x18]
mov dword [esp + 0x60], edx
mov edx, dword [edx + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x54], edi
add eax, edi
mov dword [esp + 0x40], eax
add eax, ebx
mov dword [ecx + 0x2c], eax
mov ecx, esi
call fcn.0049b140
test eax, eax
mov dword [esp + 0x24], 0
je 0x4ac2cc
mov ebx, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
inc edi
test esi, esi
je 0x4ac2ae
mov ecx, esi
mov edx, edi
push 0
call fcn.00435490
add esp, 4
jmp 0x4ac2b7
mov ecx, edi
xor edx, edx
call fcn.0041c030
mov esi, eax
test eax, eax
je 0x4ac2cc
push edi
push ebx
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 8]
inc eax
test dx, dx
mov dword [esp + 0xc], eax
je 0x4ac3f4
mov ebx, dword [ebp + 0x10]
xor eax, eax
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0x3c]
mov edi, dword [ebx + 8]
sete al
mov ecx, esi
mov dword [esp + 0x74], eax
lea edx, [eax*4 + 0x21]
push 0
push 0
push edi
call fcn.0046c5a0
add esp, 0xc
mov ecx, esi
mov edx, 0xb
push 0
push 0
push 0
call fcn.0046c5a0
add esp, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
mov ecx, esi
lea edx, [eax + eax*2 + 0x16]
push dword [esp + 0xc]
push 0
push edi
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x4ac360
mov ecx, dword [esi + 0x68]
mov ebx, dword [esp + 8]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4 + 1], 0xfd
mov dword [ecx + edx*4 + 0x10], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebx + 0x14], eax
mov ecx, 0x51ea94
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x4ac38c
mov edx, dword [esp + 0x78]
lea ecx, [eax - 1]
mov esi, dword [esp + 0x3c]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
inc dword [esp + 0x38]
xor esi, esi
mov dword [ecx + 8], eax
jmp 0x4ac3d0
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4], 0x59
mov dword [edx + ecx*4 + 4], edi
mov dword [edx + ecx*4 + 8], esi
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
mov edx, dword [esp + 8]
inc esi
cmp esi, edx
jae 0x4ac3f4
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ebx, dword [ecx + 0x6c]
add eax, esi
cmp dword [ecx + 0x70], ebx
jg 0x4ac3a0
mov edx, 0x59
push eax
push esi
push edi
call fcn.0046c600
add esp, 0xc
jmp 0x4ac3c7
cmp dx, word [esp + 0x54]
jae 0x4ac705
mov ebx, dword [esp + 0x18]
jmp 0x4ac428
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 8]
mov byte [eax + edx], 0x41
mov eax, dword [esp + 0x24]
mov byte [eax + edx], 0x41
inc edx
mov ebx, dword [esp + 0x18]
cmp edx, dword [esp + 0x54]
je 0x4ac709
mov eax, dword [esp + 0x60]
mov ecx, ebx
mov eax, dword [eax + 0x30]
mov esi, dword [eax + edx*4]
mov eax, dword [esp + 0xc]
lea edi, [edx + eax]
mov eax, edx
mov edx, esi
push edi
push dword [esp + 0x20]
mov dword [esp + 0x10], eax
push eax
push dword [ebp + 0x10]
call fcn.004b5610
add esp, 0x10
cmp eax, edi
je 0x4ac4e0
cmp dword [esp + 0x40], 1
jne 0x4ac488
mov edi, dword [esp + 0xc]
test edi, edi
je 0x4ac4c1
movzx ecx, byte [ebx + 0x13]
cmp ecx, 7
ja 0x4ac4c1
mov edx, ecx
mov dword [esp + 0xc], eax
inc dl
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0x94], edi
jmp 0x4ac4e0
mov ecx, dword [esp + 0x3c]
mov ebx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], ebx
jle 0x4ac4c7
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4], 0x4e
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x4ac4e0
mov dword [esp + 0xc], eax
jmp 0x4ac4e0
mov edx, 0x4e
push 0
push edi
push eax
call fcn.0046c600
add esp, 0xc
nop dword [eax + eax]
movzx eax, word [esi + 0xc]
mov edx, dword [esp + 8]
test al, 1
jne 0x4ac5e0
test eax, 0x100
jne case.0x4ac6af.103
mov eax, dword [esi]
test byte [esi + 0xb], 8
mov edi, dword [eax + 0x10]
jne 0x4ac617
mov cl, byte [edi]
mov eax, ecx
and al, 0xfe
cmp al, 0xaa
mov eax, edi
jne 0x4ac530
mov eax, edi
nop dword [eax + eax]
mov eax, dword [eax + 0xc]
movzx ecx, byte [eax]
mov edx, ecx
and dl, 0xfe
cmp dl, 0xaa
je 0x4ac520
cmp cl, 0xad
jne 0x4ac538
mov cl, byte [eax + 2]
mov edx, ecx
add dl, 0x6a
cmp dl, 3
mov edx, dword [esp + 8]
jb 0x4ac617
cmp cl, 0x73
je 0x4ac617
cmp cl, 0xa4
jne 0x4ac58a
test byte [eax + 6], 0x10
jne 0x4ac58a
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x4ac58a
movsx eax, word [eax + 0x20]
test eax, eax
js 0x4ac617
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x4ac617
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
jne 0x4ac617
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0xc]
mov esi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x3c]
add eax, edx
mov ebx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], ebx
jle 0x4ac602
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], esi
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
mov edx, dword [esp + 8]
jmp 0x4ac617
cmp dword [esp + 0x24], 0
je case.0x4ac6af.103
mov eax, dword [esi]
mov ecx, 0x800
mov eax, dword [eax + 4]
and eax, ecx
jne 0x4ac411
jmp case.0x4ac6af.103
mov edx, 0x32
push 0
push esi
push eax
call fcn.0046c600
mov edx, dword [esp + 0x14]
add esp, 0xc
cmp dword [esp + 0x24], 0
je case.0x4ac6af.103
mov eax, dword [esp + 0x24]
mov ecx, edi
mov bl, byte [eax + edx]
call fcn.0048ce50
cmp bl, 0x41
jl 0x4ac648
cmp al, 0x41
jl 0x4ac648
cmp bl, 0x42
jg 0x4ac65d
cmp al, 0x42
jle 0x4ac405
jmp 0x4ac65d
cmp al, 0x41
movzx ecx, bl
movzx eax, al
cmovl eax, ecx
and al, 0xbf
cmp al, 1
je 0x4ac405
mov edx, dword [esp + 8]
cmp bl, 0x41
je 0x4ac411
mov cl, byte [edi]
xor eax, eax
mov edx, ecx
and dl, 0xfe
cmp dl, 0xaa
jne 0x4ac696
xor eax, eax
mov esi, 1
nop
mov edi, dword [edi + 0xc]
cmp cl, 0xaa
cmove eax, esi
movzx ecx, byte [edi]
mov edx, ecx
and dl, 0xfe
cmp dl, 0xaa
je 0x4ac680
cmp cl, 0xad
jne 0x4ac69e
mov cl, byte [edi + 2]
mov edx, ecx
add dl, 0x6a
cmp dl, 0xe
ja case.default.0x4ac6af
movzx ecx, dl
mov edx, dword [esp + 8]
jmp dword [ecx*4 + 0x50c240]
xor ecx, ecx
cmp bl, 0x42
setg cl
jmp 0x4ac6f8
mov edx, dword [esp + 8]
cmp cl, 0x73
jne case.0x4ac6af.103
test eax, eax
sete al
cmp bl, 0x42
sete cl
and cl, al
movzx ecx, cl
jmp 0x4ac6f8
xor ecx, ecx
test eax, eax
sete cl
jmp 0x4ac6f8
cmp bl, 0x43
jl case.0x4ac6af.103
movzx ecx, word [edi + 0x20]
shr ecx, 0xf
test ecx, ecx
jne 0x4ac411
jmp case.0x4ac6af.103
mov ebx, dword [esp + 0x18]
cmp word [esp + 0x5c], 0
mov dword [esp + 0x54], 0
je 0x4ac73d
cmp dword [esp + 0x24], 0
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x50]
je 0x4ac744
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + edi]
call fcn.00427a70
mov dword [esp + 0x54], eax
jmp 0x4ac744
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x68], 0
mov eax, 0x10
mov ecx, 0x28
cmove ecx, eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + ecx]
mov ecx, dword [esp + 0x64]
mov ah, 1
mov al, 1
test ecx, ecx
je 0x4ac76f
test byte [ecx + 0xc], 0x28
setne al
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], edx
test ecx, ecx
je 0x4ac782
test byte [ecx + 0xc], 0x28
setne ah
mov edx, dword [esp + 0x64]
mov byte [esp + 0x60], ah
movzx eax, al
mov dword [esp + 0x38], eax
test edx, edx
setne al
test di, di
setne cl
or cl, al
test edx, edx
movzx ecx, cl
je 0x4ac862
mov eax, edx
mov esi, edx
mov edx, edi
mov dword [esp + 0x58], ecx
mov ecx, ebx
mov eax, dword [eax]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0xc]
lea ebx, [eax + edx]
movzx eax, word [esp + 0x44]
mov edx, edi
mov dword [esp + 0x40], eax
push eax
mov dword [esp + 0x48], ebx
push ebx
call fcn.004b5e50
add esp, 8
mov ebx, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
mov ecx, ebx
push esi
call fcn.004b60b0
add esp, 4
mov ecx, edi
mov dword [esp + 0x3c], edi
call fcn.0048f750
test eax, eax
je 0x4ac814
mov ecx, ebx
mov edx, 0x32
push 0
push dword [esp + 0xc]
push dword [esp + 0x4c]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
test eax, eax
je 0x4ac837
add eax, edi
mov ecx, ebx
mov edx, esi
push eax
call fcn.004b60f0
add esp, 4
add esi, edi
mov ecx, ebx
mov edi, esi
call fcn.00488d70
mov ebx, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x3c], 0
je 0x4ac8a0
mov esi, dword [ebp + 8]
mov dword [esp + 0x38], 1
jmp 0x4ac8eb
cmp byte [esp + 0x58], 0
je 0x4ac8b1
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, 0x48
add eax, edi
push 0
push eax
push 0
call fcn.0046c5a0
add esp, 0xc
inc edi
mov dword [esp + 0x58], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 1
jmp 0x4ac8eb
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x64]
call fcn.004b6020
mov esi, dword [ebp + 8]
jmp 0x4ac8eb
cmp dword [esp + 0x68], 0
mov dword [esp + 0x3c], 0
je 0x4ac8e7
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, 0x48
add eax, edi
push 0
push eax
push 0
call fcn.0046c5a0
add esp, 0xc
inc edi
mov dword [esp + 0x58], 1
jmp 0x4ac8eb
mov dword [esp + 0x58], ecx
mov eax, edi
mov edx, dword [esp + 0xc]
mov ecx, ebx
sub eax, dword [esp + 0x3c]
push dword [esp + 0x24]
push eax
call fcn.004b62a0
add esp, 8
mov eax, dword [esp + 0x14]
mov ebx, edi
mov edi, dword [esp + 0x50]
movzx eax, word [eax + 0x2a]
test eax, eax
je 0x4ac91e
cmp ebx, eax
je 0x4aca71
mov eax, dword [esp + 0x14]
test byte [eax + 0x26], 4
je 0x4ac941
mov ecx, dword [esp + 0x10]
mov edx, 0x76
push 0
push 0
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4aca21
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov edx, 0x45
mov ecx, ebx
push 0
push eax
push 1
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
lea eax, [edi + eax*2]
movzx edx, byte [eax + ecx*4 + 0x514e10]
mov eax, dword [esp + 0xc]
mov ecx, ebx
push eax
push dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
jne 0x4ac9b2
mov ecx, dword [ebx + 0x68]
mov edx, dword [esp + 0x40]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [ebx + 0x6c]
mov edx, 0xb
mov ecx, ebx
add eax, 2
push 0
push eax
push 0
call fcn.0046c5a0
add esp, 0xc
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp edi, 1
setg al
movzx edx, byte [ecx + eax*4 + 0x514e12]
mov ecx, ebx
push dword [esp + 0xc]
push dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [ebx]
mov edx, edi
mov edi, dword [esp + 0x50]
cmp byte [ecx + 0x51], 0
jne 0x4aca71
mov ecx, dword [esp + 0x10]
sub edx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x4aca71
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x58]
movzx edx, byte [eax + ecx*4 + 0x514e10]
mov ecx, edi
push dword [esp + 0xc]
push dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [edi]
mov edi, dword [esp + 0x50]
cmp byte [ecx + 0x51], 0
jne 0x4aca71
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], ebx
mov ecx, dword [esp + 0x48]
movzx ebx, byte [esp + 0x60]
mov eax, dword [esp + 0x4c]
test ecx, ecx
je 0x4acb39
mov eax, dword [ecx]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x18]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 0xc]
lea esi, [eax + edi]
movzx eax, word [esp + 0x5c]
mov edx, ebx
mov dword [esp + 0x38], eax
push eax
push esi
call fcn.004b5e50
add esp, 8
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
mov ecx, edi
push dword [esp + 0x48]
call fcn.004b60b0
add esp, 4
mov ecx, ebx
mov dword [esp + 0x40], ebx
call fcn.0048f750
test eax, eax
je 0x4acaed
mov ecx, edi
mov edx, 0x32
push 0
push dword [esp + 0xc]
push esi
call fcn.0046c5a0
add esp, 0xc
mov edi, dword [esp + 0x54]
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
test edi, edi
je 0x4acb20
mov ecx, esi
mov edx, ebx
push edi
call fcn.004b60f0
add esp, 4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
push edi
push ebx
call fcn.004b62a0
add esp, 8
add ebx, dword [esp + 0x50]
mov ecx, esi
call fcn.00488d70
test eax, eax
je 0x4acb6d
mov dword [esp + 0x60], 1
jmp 0x4acb79
test al, al
je 0x4acb82
cmp dword [esp + 0x68], 0
mov edx, dword [esp + 0x24]
jne 0x4acb6a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, 0x48
add eax, edi
push 0
push eax
push 0
call fcn.0046c5a0
mov edx, dword [esp + 0x30]
add esp, 0xc
xor ebx, ebx
inc edi
jmp 0x4acb86
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x48]
call fcn.004b6020
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x24]
jmp 0x4acb90
mov edx, dword [esp + 0x24]
mov dword [esp + 0x60], ebx
mov ebx, edi
mov edi, dword [esp + 0x54]
test edx, edx
je 0x4acb9d
mov ecx, dword [esp + 0x2c]
call fcn.004352c0
test edi, edi
je 0x4acbac
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.004352c0
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
test ebx, ebx
mov dword [esp + 0x38], ebx
mov eax, dword [eax + 0x6c]
mov dword [ecx + 0x3c], eax
je 0x4acc2b
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
test ebx, ebx
je 0x4acbe6
mov eax, dword [edi + 0x6c]
mov ecx, edi
mov edx, 0x14
add eax, 3
push 0
push eax
push ebx
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
movzx edx, byte [ecx + eax*2 + str.__MULTI_INDEX_OR]
mov ecx, edi
push dword [esp + 0xc]
push dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
jne 0x4acc2b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x4acc99
mov edi, dword [esp + 0x10]
mov edx, 0x12
mov eax, dword [edi + 0x6c]
mov ecx, edi
add eax, 2
push 0
push eax
push ebx
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [eax + ecx*2 + str.__MULTI_INDEX_OR]
mov ecx, edi
push dword [esp + 0xc]
push dword [esp + 0xc]
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
jne 0x4acc99
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
add edx, dword [esp + 0x3c]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
test eax, 0x40000
je 0x4acccb
mov ecx, dword [esp + 0x10]
mov edx, 0x76
push 0
push 1
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
test al, 0x40
je 0x4acce7
test byte [esi + 0x28], 0x20
mov al, 1
mov dword [esp + 8], eax
je 0x4aceb0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x24], 0
js 0x4acd73
movzx eax, word [esi + 0x28]
test eax, 0x400
jne 0x4acd33
test eax, 0x1000
je 0x4acd17
cmp byte [esi + 0x2e], 1
je 0x4acd33
mov eax, dword [esp + 0x14]
cmp word [eax + 0x28], 0
je 0x4acd33
mov edx, dword [esp + 0x28]
mov ecx, esi
push dword [esp + 0x34]
push ebx
call fcn.004b6360
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x4acea8
mov esi, dword [edi + 0x2c]
mov edx, 0x86
inc esi
mov dword [edi + 0x2c], esi
mov edi, dword [esp + 0x10]
mov ecx, edi
push 0
push esi
push dword [esp + 0x3c]
call fcn.0046c5a0
add esp, 0xc
mov edx, 0x20
mov ecx, edi
push esi
mov esi, dword [ebp + 8]
push 0
push ebx
call fcn.0046c5a0
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4acea8
cmp ebx, dword [esp + 0x34]
mov dword [esp + 8], 0
je 0x4aceb0
mov eax, dword [eax + 8]
test eax, eax
je 0x4acda6
movzx ecx, word [eax + 0x37]
and ecx, 3
cmp cx, 2
je 0x4acda2
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4acd8c
jmp 0x4acda6
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ecx, edi
movzx edx, word [eax + 0x32]
mov esi, eax
call fcn.00489600
cmp word [esi + 0x32], 0
mov dword [esp + 0xc], eax
je 0x4ace6c
mov eax, dword [esp + 0x28]
xor edi, edi
jmp 0x4ace0e
lea edx, [ebx + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [ebx + ebx*4]
mov ebx, dword [esp + 0x34]
mov dword [edx + ecx*4], 0x59
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], esi
mov dword [edx + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x30]
inc edi
movzx esi, word [eax + 0x32]
mov eax, dword [esp + 0x28]
cmp edi, esi
jae 0x4ace6e
movzx ecx, word [eax + 0x34]
mov esi, eax
mov eax, 0xffffffff
test ecx, ecx
je 0x4ace3f
mov edx, dword [esp + 8]
mov ebx, dword [esi + 4]
xor esi, esi
mov edx, dword [edx + 4]
movzx edx, word [edx + edi*2]
nop dword [eax]
cmp word [ebx + esi*2], dx
je 0x4ace3d
inc esi
cmp ecx, esi
jne 0x4ace30
jmp 0x4ace3f
mov eax, esi
mov ecx, dword [esp + 0xc]
cwde
lea esi, [edi + ecx]
mov ecx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], ebx
jg 0x4acdce
mov edx, 0x59
push esi
push eax
push dword [esp + 0x3c]
call fcn.0046c600
add esp, 0xc
jmp 0x4acdf9
xor esi, esi
mov edi, dword [esp + 0x10]
mov edx, 0x1d
mov ecx, edi
push dword [esp + 0xc]
push dword [esp + 0x74]
push ebx
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
jne 0x4acea1
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], esi
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], 0
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
cmp dword [edi], 0
jne 0x4acef2
test byte [esi + 0x28], 0x20
jne 0x4aced9
mov edx, ebx
push esi
push dword [esp + 0x38]
call fcn.004b6560
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
add esp, 8
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x4acef2
mov edx, ebx
push dword [esp + 0x7c]
call fcn.004b67c0
mov edx, dword [esp + 0x24]
add esp, 4
mov eax, dword [esp + 0x14]
test byte [eax + 0x25], 0x10
jne 0x4acf09
cmp dword [esp + 0x1c], 0
jne 0x4acf0f
mov byte [edi + 0x35], 5
jmp 0x4acf13
mov byte [edi + 0x35], 0xad
jmp 0x4acf13
mov byte [edi + 0x35], 4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x38], eax
mov al, byte [ecx + 0x26]
and al, 1
mov byte [edi + 0x36], al
test byte [ecx + 0x24], 0xf
jne 0x4acf30
mov byte [edi + 0x37], 1
xor eax, eax
cmp byte [esp + 8], 0
mov ecx, dword [esp + 0x28]
cmovne ecx, eax
mov eax, ecx
jmp 0x4abab3
mov edx, eax
mov esi, dword [edi + 0x28]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
lea eax, [esi + 1]
mov dword [edi + 0x28], eax
movzx eax, word [edx + 0x32]
mov edx, 0x64
push 0
push eax
mov dword [esp + 0x54], esi
push esi
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.00486540
mov esi, dword [ebp + 8]
mov eax, dword [edi + 0x2c]
inc eax
mov dword [esp + 0x44], eax
mov dword [edi + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov edx, 0x45
push 0
push dword [esp + 0x60]
push 0
call fcn.0046c5a0
add esp, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x54]
cmp eax, 2
jl 0x4ad05a
xor edi, edi
xor ebx, ebx
xor esi, esi
jmp 0x4acff8
mov ecx, dword [esp + 0x2c]
push 0
push 0
call fcn.0048fa30
add esp, 8
mov ecx, dword [esp + 0x18]
mov edx, esi
push eax
call fcn.0047d8f0
add esp, 4
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
nop word cs:[eax + eax]
nop dword [eax]
inc ebx
add edi, 0x30
cmp ebx, eax
jge 0x4ad027
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x5c]
sub edx, ecx
cmp edx, edi
je 0x4acff0
test byte [ecx + edi + 0xa], 6
jne 0x4acff0
movzx edx, word [ecx + edi + 0xc]
test edx, 0x1fff
je 0x4acff0
mov edx, dword [ecx + edi]
test edx, edx
jne 0x4acfbb
xor eax, eax
jmp 0x4acfcb
test esi, esi
je 0x4ad047
mov edi, dword [esp + 0x18]
mov edx, 0x1002c
mov ecx, edi
push esi
push 0
call fcn.00472b00
add esp, 8
mov dword [esp + 0x40], eax
jmp 0x4ad053
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], 0
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x38]
movzx esi, word [esi + 0x28]
push 0x514e1c
push 1
push edi
call fcn.0048df30
add esp, 0xc
cmp dword [ebx + 0xc], 0
jle 0x4ad60b
mov eax, dword [esp + 8]
and esi, 0x400
xor ecx, ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x28], 0
or esi, 0x20
movzx edx, si
mov dword [esp + 0x50], edx
add eax, 8
mov dword [esp + 0x58], eax
jmp 0x4ad0c4
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
cmp eax, dword [ebx + 0xc]
mov ecx, eax
mov eax, esi
mov dword [esp + 0x28], esi
jge 0x4ad615
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], ecx
lea ecx, [ecx + ecx*2]
shl ecx, 4
cmp dword [eax + ecx + 0x14], edx
je 0x4ad0ed
test byte [eax + ecx + 0xd], 4
jne 0x4ad0ed
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
inc eax
jmp 0x4ad0b3
mov edx, dword [esp + 0x40]
mov esi, dword [eax + ecx]
test edx, edx
je 0x4ad0fd
mov dword [edx + 0xc], esi
mov esi, edx
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0x24], eax
push eax
push str.INDEX__d
push 1
push edi
call fcn.0048df30
add esp, 0x10
mov ebx, dword [esp + 0x34]
mov ecx, edi
mov edx, ebx
push dword [esp + 0x48]
push dword [esp + 0x54]
push 0
push 0
push esi
call fcn.004a01c0
add esp, 0x14
test eax, eax
je 0x4ad0a7
mov edx, ebx
mov dword [esp + 0x3c], eax
add eax, 0x2e8
mov ecx, edi
push 0
push eax
call fcn.004aa4a0
add esp, 8
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edx, dword [esp + 0x30]
test byte [eax + 0x28], 0x10
jne 0x4ad4d5
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
mov eax, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x64], ecx
cmp byte [eax + 0x24], 0
mov eax, dword [esp + 0x58]
js 0x4ad1d0
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4ad216
lea ecx, [eax + 1]
mov edi, dword [esp + 0x44]
lea eax, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x7f
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4ad22e
mov esi, dword [eax]
movzx ecx, word [esi + 0x37]
lea eax, [esi + 0x14]
and ecx, 3
cmp cx, 2
jne 0x4ad1d0
movzx edx, word [esi + 0x32]
cmp edx, 1
mov dword [esp + 0x1c], edx
jne 0x4ad2ad
mov al, byte [edi + 0x13]
test al, al
je 0x4ad2db
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x14], eax
jmp 0x4ad2e6
mov eax, edx
mov ecx, esi
mov edx, 0x7f
push 0
push dword [esp + 0x48]
push eax
call fcn.0046c600
add esp, 0xc
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4ad26b
lea ecx, [eax + 1]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov dword [esi + 0x6c], ecx
lea ecx, [eax + eax*4]
mov edi, dword [esi + 0x68]
mov dword [edi + ecx*4], 0x2d
mov dword [edi + ecx*4 + 4], edx
mov dword [edi + ecx*4 + 8], 0
mov dword [edi + ecx*4 + 0xc], ebx
mov dword [edi + ecx*4 + 0x10], 0
jmp 0x4ad284
mov ecx, esi
mov edx, 0x2d
push dword [esp + 0x44]
push 0
push dword [esp + 0x54]
call fcn.0046c600
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x4ad293
mov ebx, eax
jmp 0x4ad4d5
mov esi, dword [esi + 0x68]
mov edx, dword [esp + 0x64]
lea ecx, [eax + eax*4]
mov ebx, eax
mov byte [esi + ecx*4 + 1], 0xfd
mov dword [esi + ecx*4 + 0x10], edx
jmp 0x4ad4d5
mov eax, dword [edi + 0x1c]
sub eax, edx
jge 0x4ad2c5
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
add eax, edx
mov dword [esp + 0x14], ecx
mov dword [edi + 0x2c], eax
jmp 0x4ad2d4
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x14], ecx
add ecx, edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x1c], eax
test dx, dx
jne 0x4ad2e6
jmp 0x4ad321
mov eax, dword [edi + 0x2c]
inc eax
mov dword [esp + 0x14], eax
mov dword [edi + 0x2c], eax
xor ebx, ebx
nop dword [eax + eax]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
lea edi, [ecx + ebx]
movsx eax, word [eax + ebx*2]
mov ecx, dword [esp + 0x10]
push edi
push eax
push dword [esp + 0x38]
call fcn.0048be20
mov edx, dword [esp + 0x28]
add esp, 0xc
inc ebx
cmp edx, ebx
jne 0x4ad2f0
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x64], 0
je 0x4ad369
mov esi, dword [esp + 0x10]
mov ebx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebx
jle 0x4ad371
lea eax, [ebx + 1]
mov edx, dword [esp + 0x4c]
lea ecx, [ebx + ebx*4]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4ad38c
mov esi, dword [esp + 0x10]
xor ebx, ebx
jmp 0x4ad3b2
mov ecx, esi
mov edx, 0x1e
push dword [esp + 0x14]
push 0
push dword [esp + 0x54]
call fcn.0046c600
add esp, 0xc
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [esp + 0x1c]
cmp byte [eax + 0x51], 0
jne 0x4ad3a7
mov eax, dword [esi + 0x68]
lea ecx, [ebx + ebx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [esp + 0x64], 0
js 0x4ad49f
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x74], ebx
cmp dword [esi + 0x70], eax
jle 0x4ad3f3
lea ecx, [eax + 1]
mov ebx, dword [esp + 0x14]
lea eax, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x5b
mov dword [ecx + eax*4 + 4], ebx
mov ebx, dword [esp + 0x74]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4ad40d
mov eax, edx
mov ecx, esi
mov edx, 0x5b
push dword [esp + 0x44]
push eax
push dword [esp + 0x1c]
call fcn.0046c600
add esp, 0xc
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4ad44e
lea ecx, [eax + 1]
mov ebx, dword [esp + 0x4c]
lea edx, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + edx*4], 0x82
mov dword [ecx + edx*4 + 4], ebx
mov ebx, dword [esp + 0x44]
mov dword [ecx + edx*4 + 8], ebx
mov ebx, dword [esp + 0x14]
mov dword [ecx + edx*4 + 0xc], ebx
mov ebx, dword [esp + 0x74]
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x4ad469
mov ecx, esi
mov edx, 0x82
push dword [esp + 0x14]
push dword [esp + 0x48]
push dword [esp + 0x54]
call fcn.0046c600
add esp, 0xc
mov ecx, dword [esi]
mov edx, dword [esp + 0x1c]
cmp byte [ecx + 0x51], 0
jne 0x4ad484
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edx
cmp dword [esp + 0x64], 0
je 0x4ad49f
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x4ad49f
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
cmp dx, 1
jne 0x4ad4c6
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4ad4d5
movzx eax, byte [edi + 0x13]
cmp eax, 7
ja 0x4ad4d5
mov ecx, eax
inc cl
mov byte [edi + 0x13], cl
mov dword [edi + eax*4 + 0x94], edx
jmp 0x4ad4d5
cmp dword [edi + 0x1c], edx
jge 0x4ad4d5
mov eax, dword [esp + 0x14]
mov dword [edi + 0x1c], edx
mov dword [edi + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x4ad516
lea ecx, [eax + 1]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x68]
lea eax, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0xc
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x4ad52f
mov ecx, esi
mov edx, 0xc
push 0
push dword [esp + 0x6c]
push dword [esp + 0x64]
call fcn.0046c600
add esp, 0xc
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x3c]
test ebx, ebx
je 0x4ad563
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
mov ecx, 0x51ea94
cmp byte [edx + 0x51], 0
jne 0x4ad55c
lea ecx, [eax - 1]
test ebx, ebx
cmovns ecx, ebx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 8], eax
test byte [edx + 0x30], 2
mov eax, dword [esp + 0x54]
mov ecx, 1
mov esi, 0
cmovne eax, ecx
xor ebx, ebx
mov dword [esp + 0x54], eax
mov eax, dword [edx + 0x330]
test byte [eax + 0x25], 2
je 0x4ad5c5
cmp dword [esp + 0xc], 0
mov eax, dword [eax + 0x20]
je 0x4ad5a1
cmp eax, dword [esp + 0x28]
mov esi, 0
jne 0x4ad5c5
jmp 0x4ad5a5
mov dword [esp + 0x28], eax
cmp byte [edi + 0x24], 0
jns 0x4ad5c1
mov eax, dword [esp + 0x28]
mov esi, 0
movzx eax, word [eax + 0x37]
and eax, 3
cmp ax, 2
je 0x4ad5c5
mov esi, dword [esp + 0x28]
mov ecx, edx
call fcn.004a49a0
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0xd4]
test eax, eax
je 0x4ad600
mov ecx, dword [edi + 8]
jns 0x4ad5e3
mov eax, dword [ecx + 0x6c]
dec eax
mov edi, dword [ecx]
mov edx, 0x51ea94
cmp byte [edi + 0x51], 0
jne 0x4ad5f9
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [ecx + 0x68]
mov ebx, dword [edx + 8]
mov edi, dword [esp + 0x18]
mov dword [edi + 0xd4], ebx
jmp 0x4ad0ab
xor esi, esi
mov dword [esp + 0x54], 0
mov ecx, edi
call fcn.0049f250
mov ebx, dword [ebp + 0x10]
test esi, esi
mov dword [ebx + 0x40], esi
je 0x4ad62d
mov eax, dword [esp + 0x48]
mov dword [ebx + 8], eax
mov edx, dword [esp + 0x40]
mov esi, dword [ebp + 8]
test edx, edx
je 0x4ad648
mov ecx, dword [esp + 0x2c]
mov dword [edx + 0xc], 0
call fcn.00469b50
mov edi, dword [esp + 0x10]
mov ecx, 0x51ea94
mov edx, dword [edi]
mov eax, dword [edi + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x4ad671
mov edx, dword [esp + 0x78]
lea ecx, [eax - 1]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov edx, 0xb
mov dword [ecx + 4], eax
mov ecx, edi
push 0
push dword [ebx + 0xc]
push 0
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [esp + 0x68]
mov ecx, edi
call fcn.0048b2b0
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4ad6ac
cmp byte [esi + 0x2c], 2
jb 0x4ad6ac
mov ecx, dword [esp + 0x2c]
call fcn.004352c0
xor eax, eax
cmp dword [esp + 0x54], 0
jne 0x4aad63
mov edx, dword [esp + 0x60]
mov ecx, ebx
call fcn.004b6020
jmp 0x4aad61