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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
mov eax, ecx
xor ebx, ebx
mov dword [esp + 8], eax
push esi
mov esi, edx
mov dword [esp + 0x68], ebx
mov eax, dword [eax]
mov edx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x50], eax
lea ecx, [edx + 0x50]
mov dword [esp + 0x30], esi
mov dword [esp + 0x70], ecx
mov eax, dword [edi + 0x50]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 0x3c]
imul ecx, eax, 0x48
mov eax, dword [edx + 4]
add eax, 8
add eax, ecx
lea ecx, [edx + 0x1f0]
mov dword [esp + 0x74], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [eax + 0x2c]
mov edx, eax
mov dword [esp + 0x48], eax
call fcn.004acb3a
mov ecx, dword [ebp + 8]
not eax
and eax, dword [ebp + 0x14]
not edx
and edx, dword [ebp + 0x18]
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], edx
mov eax, dword [ecx + 0x48]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [ebp + 0xc]
call fcn.007851f0
mov edx, dword [esp + 0x10]
xor ecx, ecx
inc ecx
and eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x38]
dec eax
mov dword [edx + 0x38], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], eax
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x38]
dec eax
mov dword [edx + 0x38], eax
mov dword [esp + 0x80], eax
mov dword [edi + 0x18], eax
cmp byte [edi + 0x3c], bl
jbe 0x4a898b
mov ecx, dword [esp + 0x74]
test byte [ecx + 0x24], 8
je 0x4a898b
mov eax, dword [edx + 0x2c]
mov ecx, esi
inc eax
push ebx
push eax
push ebx
mov dword [edx + 0x2c], eax
push 0x47
pop edx
mov dword [edi], eax
call fcn.0046b9a1
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, eax
test eax, eax
jle 0x4a89b3
mov edx, dword [ebp + 8]
imul eax, eax, 0x60
add edx, 0x330
add eax, edx
cmp dword [eax - 0x38], ebx
jne 0x4a89b3
cmp dword [eax], ebx
jne 0x4a89b3
dec ecx
sub eax, 0x60
test ecx, ecx
jg 0x4a89a2
imul eax, ecx, 0x60
mov ecx, dword [ebp + 8]
push 0xb
mov eax, dword [eax + ecx + 0x304]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
pop ecx
test byte [eax + 0x28], 0x20
je 0x4a8a08
push dword [eax + 0x18]
mov esi, dword [eax + 0x1c]
mov edx, ecx
mov ecx, dword [esp + 0x34]
push ebx
push esi
call fcn.0046b9a1
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push ebx
push dword [esp + 0x18]
push esi
push 0xc
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [edi + 0x44], eax
mov byte [edi + 0x3d], 9
jmp 0x4aa04f
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x2c]
bt edx, 0xa
jae 0x4a8dcd
movzx eax, word [eax + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
lea edx, [eax + 2]
call fcn.00481eb5
mov edx, eax
mov eax, dword [edi + 0xc]
mov esi, ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x20], ebx
jbe 0x4a8ade
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4a8acb
xor eax, eax
inc eax
test byte [ecx + 0xc], al
je 0x4a8be0
mov edx, eax
mov ecx, esi
shl edx, cl
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp esi, 0x1f
cmovbe eax, edx
test dword [ecx + 0x28], eax
mov ecx, dword [esp + 0x10]
je 0x4a8bb8
mov edi, dword [ecx + 0x28]
inc dword [ecx + 0x2c]
mov esi, dword [ecx + 0x2c]
push edi
lea eax, [edi + 1]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
call fcn.0047e492
mov eax, dword [esp + 0x28]
mov edx, 0xae
pop ecx
mov ecx, dword [esp + 0x30]
add eax, 2
push esi
mov esi, dword [esp + 0x10]
add eax, esi
push eax
push edi
call fcn.0046b9a1
mov edi, dword [ebp + 0x10]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
inc esi
mov dword [esp + 0xc], esi
cmp esi, dword [esp + 0x20]
jl 0x4a8a4e
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov ecx, esi
push ebx
push edx
push dword [eax + 0x18]
push 0x47
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x30]
add esp, 0xc
inc eax
mov ecx, esi
push ebx
push eax
push dword [esp + 0x28]
push 0x47
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x28]
add esp, 0xc
xor eax, eax
inc eax
test byte [ecx + 0x1c], al
push 0xffffffffffffffff
pop eax
push 0xfffffffffffffffa
pop edx
cmovne eax, edx
push eax
push dword [ecx + 0x24]
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0x38]
push dword [esp + 0x58]
push 6
pop edx
call fcn.0046bac5
mov edx, dword [esp + 0x30]
add esp, 0x14
mov eax, dword [esp + 0x50]
and dword [edx + 0x1c], 0xfffffffe
cmp byte [eax + 0x57], bl
je 0x4a8b54
mov dword [edx + 0x24], ebx
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 8]
mov dword [edi + 0x40], eax
push 0x3f
pop eax
cmp byte [ecx + 0x2e], bl
lea ecx, [eax + 0x79]
cmovne eax, ecx
mov ecx, ebx
mov byte [edi + 0x3d], al
mov eax, dword [esi + 0x6c]
mov dword [edi + 0x44], eax
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x20], ecx
jbe 0x4aa04f
mov eax, dword [edx + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x38], edx
cmp ecx, 0x10
jae 0x4a8c34
mov eax, dword [esp + 0x1c]
mov ax, word [eax + 0x22]
shr ax, cl
xor ecx, ecx
inc ecx
test cl, al
je 0x4a8c30
mov ecx, edi
call fcn.004a7bae
jmp 0x4a8d6f
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
add eax, 2
add eax, esi
push eax
push dword [esp + 0x50]
push esi
push edi
call fcn.004a7ed2
mov eax, dword [edi + 0x10]
add esp, 0x10
mov dword [esp + 0x2c], eax
jmp 0x4a8ac7
push eax
lea eax, [edx + 2]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x14]
add eax, esi
push eax
mov edx, dword [edx + 0x10]
call fcn.004a86ae
mov eax, dword [esp + 0x1c]
pop ecx
pop ecx
cmp byte [eax + 0xf], 0x4a
mov eax, dword [esp + 0x1c]
jne 0x4a8c27
test byte [eax + 0x1c], 2
je 0x4a8c27
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
push ebx
mov eax, dword [eax + 0x10]
push dword [eax + 0xc]
push ebx
push 0x47
pop edx
call fcn.0046b9a1
jmp 0x4a8ac4
mov edx, dword [esp + 0x24]
jmp 0x4a8acf
mov ecx, dword [esp + 0x18]
xor eax, eax
inc eax
test byte [edx + 0xc], al
je 0x4a8d73
mov edx, eax
xor eax, eax
shl edx, cl
cmp ecx, 0x1f
cmovbe eax, edx
mov edx, dword [esp + 0x1c]
test dword [edx + 0x28], eax
jne 0x4a8d77
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x57], bl
jne 0x4a8d77
mov dword [esp + 0xc], ebx
cmp dword [edi + 0x48], ebx
jle 0x4a8cd1
mov edx, dword [esp + 0x24]
mov eax, dword [edi + 0x4c]
add edx, 2
add eax, 4
add ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
mov edx, dword [eax]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x14], ecx
mov al, byte [edx]
cmp al, 0x5e
jne 0x4a8d8b
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
add ecx, 2
add ecx, eax
cmp dword [edx + 0xc], ecx
jne 0x4a8d9e
mov al, byte [edx]
push dword [edx + 0xc]
mov ecx, esi
push dword [edx + 8]
push dword [edx + 4]
movzx edx, al
call fcn.0046b9a1
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ebx
push ebx
push 0x35
pop edx
call fcn.0047c7e0
mov edx, eax
mov eax, dword [esp + 0x58]
pop ecx
pop ecx
mov dword [esp + 0x14], edx
cmp byte [eax + 0x57], bl
jne 0x4a8d64
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x38]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0xc]
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jle 0x4a8d0e
mov eax, dword [eax + 0x14]
imul ecx, ecx, 0x14
mov eax, dword [eax + ecx - 0xc]
mov ecx, dword [esp + 0x50]
mov dword [edx + 0xc], eax
mov edx, 0xb0
push ebx
call fcn.0047c741
mov edx, dword [esp + 0x18]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
pop ecx
mov dword [edx + 0x10], eax
test eax, eax
je 0x4a8d5d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
add eax, 2
add ecx, eax
mov eax, dword [esp + 0xc]
push 0x10
mov dword [eax + 0x1c], ecx
push dword [edi + 0x18]
push edx
push dword [esp + 0x1c]
call fcn.00480e00
mov edx, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc], ebx
test edx, edx
je 0x4a8d6f
mov ecx, eax
call fcn.0047cbeb
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x20]
jl 0x4a8b83
jmp 0x4aa04f
cmp al, 0x87
jne 0x4a8d9a
cmp dword [edx + 8], ecx
je 0x4a8cbb
jmp 0x4a8dab
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
add ecx, 2
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
inc ecx
add eax, 0x14
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], eax
cmp ecx, dword [edi + 0x48]
jl 0x4a8c86
jmp 0x4a8cd1
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x4a8e93
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
push eax
push dword [esp + 0x50]
mov dword [esp + 0x1c], eax
push ebx
push edi
call fcn.004a7ed2
mov edx, dword [esp + 0x24]
mov ecx, eax
add esp, 0x10
mov dword [esp + 0xc], ecx
cmp ecx, edx
je 0x4a8e23
mov ecx, dword [esp + 0x10]
call fcn.00481e9c
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x14], eax
cmp dword [edi + 0x34], ebx
je 0x4a8e78
push ebx
push eax
push ecx
push 0xd
pop edx
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
xor eax, eax
inc eax
mov ecx, esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x1c]
push dword [edi + 0x34]
push 0x40
pop edx
call fcn.0046bcab
push dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push dword [ebp + 0x14]
mov ecx, dword [esp + 0x28]
push dword [esp + 0x2c]
push dword [ebp + 0xc]
call fcn.004a8790
mov eax, dword [esp + 0x34]
add esp, 0x20
push dword [esp + 0xc]
mov ecx, esi
push eax
push dword [esp + 0x50]
push 0x1e
pop edx
call fcn.0046b9a1
add esp, 0xc
jmp 0x4aa014
mov ecx, 0x102
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x4a90c8
mov dword [esp + 0x38], 0xb8
mov ecx, ebx
mov dword [esp + 0x58], ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
test dl, 0x20
je 0x4a8ed5
mov eax, dword [esp + 0x1c]
push 4
mov eax, dword [eax + 0x38]
mov ecx, dword [eax]
pop eax
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 0x2c], ecx
jmp 0x4a8ed9
mov dword [esp + 0xc], ebx
test dl, 0x10
je 0x4a8eec
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [edx + eax]
mov edx, dword [esp + 0x4c]
test edx, edx
cmove ecx, eax
cmove eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], eax
test eax, eax
je 0x4a8fb4
mov edx, dword [eax]
mov dword [esp + 0x20], 0x17151618
mov dword [esp + 0xc], edx
mov ecx, dword [edx + 0x10]
call fcn.0047c0f9
cmp eax, 1
jle 0x4a8f59
mov ecx, dword [esp + 0x10]
call fcn.00481e7d
mov edx, dword [edx + 0x10]
push 1
push eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], eax
call fcn.004a86ae
mov edx, dword [esp + 0x14]
xor eax, eax
pop ecx
pop ecx
inc eax
movzx ecx, byte [edx]
inc ecx
and ecx, 2
or ecx, eax
mov cl, byte [esp + ecx + 0x20]
jmp 0x4a8f8c
lea eax, [esp + 0x34]
mov edx, ecx
mov ecx, dword [esp + 0x10]
push eax
call fcn.00480754
mov edx, dword [esp + 0x1c]
pop ecx
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.004a7bae
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
movzx ecx, byte [edx]
mov cl, byte [esp + ecx - 0x16]
push dword [esp + 0x2c]
movzx edx, cl
mov ecx, esi
push dword [esp + 0x18]
push dword [esp + 0x50]
call fcn.0046b9a1
mov edx, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x10]
call fcn.00481e9c
jmp 0x4a8fd7
xor eax, eax
mov ecx, esi
inc eax
push ebx
push dword [esp + 0x38]
xor edx, eax
push dword [esp + 0x50]
lea edx, [edx*4 + 0x20]
call fcn.0046b9a1
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a9059
mov eax, dword [eax]
xor edx, edx
inc dword [ecx + 0x2c]
inc edx
mov ecx, dword [ecx + 0x2c]
push edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x5c], ecx
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.004a86ae
mov edx, dword [esp + 0x14]
pop ecx
pop ecx
mov ecx, dword [edx + 0x10]
call fcn.0047c0f9
cmp eax, 1
jg 0x4a9033
mov al, byte [edx]
cmp al, 0x38
je 0x4a901d
cmp al, 0x36
jne 0x4a9033
mov eax, dword [esp + 0x4c]
xor edx, edx
inc edx
xor eax, edx
lea edx, [eax*2 + 0x37]
mov dword [esp + 0x38], edx
jmp 0x4a9042
mov eax, dword [esp + 0x4c]
lea eax, [eax*2 + 0x36]
mov dword [esp + 0x38], eax
call fcn.0047c0f9
xor ecx, ecx
inc ecx
cmp eax, ecx
jg 0x4a9059
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.004a7bae
cmp dword [esp + 0x4c], ebx
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x48]
sete al
add al, 0x26
mov dword [edi + 0x40], edx
cmp dword [esp + 0x38], 0xb8
mov byte [edi + 0x3d], al
mov dword [edi + 0x44], ecx
je 0x4aa04f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
push ebx
inc dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
push esi
push edx
mov edx, 0x87
call fcn.0046b9a1
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [esp + 0x30]
push esi
push dword [esp + 0x18]
push dword [esp + 0x60]
call fcn.0046b9a1
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push 0x53
pop edx
call fcn.0046bf17
jmp 0x4aa04f
test edx, 0x200
je 0x4a99f0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x18], ebx
movzx ecx, word [eax + 0x18]
movzx eax, word [eax + 0x1a]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xc], ebx
mov byte [esp + 0x2b], bl
movzx eax, word [eax + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x47], bl
mov dword [esp + 0x64], ebx
mov dword [esp + 0x38], ebx
mov eax, dword [eax + 0x20]
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x60], eax
movzx eax, cx
mov dword [esp + 0x24], eax
mov ecx, eax
test dl, 0x20
je 0x4a9153
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
inc ecx
mov dword [esp + 0x40], eax
movzx eax, word [esi + 0x1a]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], eax
test dl, 0x10
je 0x4a923a
mov eax, dword [esp + 0x1c]
mov edi, 0x100
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
movzx eax, word [ecx + 0x1c]
mov ecx, edx
cmp dword [esp + 0x18], eax
mov edx, dword [esp + 0x68]
cmova eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
test word [edx + 0xa], di
mov edi, dword [ebp + 0x10]
je 0x4a91eb
mov ecx, dword [esp + 0x10]
push ebx
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [ecx + 0x2c], eax
mov ecx, esi
push eax
mov dword [edi + 0x2c], eax
xor eax, eax
inc eax
push eax
push 0x47
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x78]
add esp, 0xc
mov eax, dword [esi + 0x6c]
shl dword [edi + 0x2c], 1
mov edx, dword [esp + 0x24]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
cmp byte [edx + eax], 1
mov eax, dword [esp + 0x1c]
sete cl
xor ecx, dword [esp + 0x4c]
or dword [edi + 0x2c], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov edx, ecx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x40], ebx
jne 0x4a923a
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
mov dword [esp + 0x34], ecx
test ecx, ecx
js 0x4a9225
mov eax, dword [edx + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 4], 0xf
je 0x4a9358
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
cmp ecx, 0xfffffffe
je 0x4a935c
xor ecx, ecx
inc ecx
and edx, 0x80030
cmp edx, 0x80000
jne 0x4a9285
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov byte [esp + 0x2b], cl
inc dword [eax + 0x2c]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x64], ecx
mov dword [edi + 0x24], ecx
cmp dword [edi], ebx
je 0x4a927c
push ebx
push ecx
push ebx
push 0x47
pop edx
mov ecx, esi
call fcn.0046b9a1
mov eax, dword [esp + 0x1c]
add esp, 0xc
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [edi + 0x28], eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x3c]
cmp ax, word [ecx + 0x34]
jae 0x4a92da
mov eax, dword [ecx + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x24]
cmp byte [edx + eax], cl
sete cl
cmp dword [esp + 0x4c], ecx
jne 0x4a92da
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
mov cl, byte [esp + 0x2b]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov byte [esp + 0x47], cl
movzx ecx, dx
movzx eax, al
mov byte [esp + 0x2b], bl
mov dword [esp + 0x58], ecx
mov dword [esp + 0x20], eax
cmp dword [ebp + 0xc], ebx
jle 0x4a9301
mov eax, dword [esp + 0x1c]
test dword [eax + 0x2c], 0x100000
je 0x4a9301
push ebx
push ebx
push dword [esp + 0x68]
mov edx, 0x88
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x1c]
mov edx, edi
push dword [esp + 0x54]
call fcn.004a8374
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x54], ecx
test eax, eax
je 0x4a9349
cmp word [esp + 0x20], bx
je 0x4a9349
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
lea edx, [eax + edx]
call fcn.004511f6
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x64], ebx
je 0x4a9370
mov edx, dword [edi + 0x28]
mov dword [esp + 0x18], edx
jmp 0x4a9377
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x2b], cl
jmp 0x4a923d
mov eax, dword [edi + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4a938b
test byte [eax + 0xc], 0x28
jne 0x4a938b
mov dword [esp + 0x34], ebx
jmp 0x4a9392
xor edx, edx
inc edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x68]
test edx, edx
je 0x4a93a6
test byte [edx + 0xc], 0x28
jne 0x4a93a6
mov dword [esp + 0x14], ebx
jmp 0x4a93ad
xor edx, edx
inc edx
mov dword [esp + 0x14], edx
test eax, eax
jne 0x4a93c9
cmp word [esp + 0x3c], bx
ja 0x4a93c9
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x5c], eax
jmp 0x4a94a6
mov edx, dword [esp + 0x24]
mov dword [esp + 0x5c], edx
xor edx, edx
inc edx
mov dword [esp + 0x3c], edx
test eax, eax
je 0x4a94a2
mov ecx, dword [esp + 0x58]
mov eax, dword [eax]
movzx edx, cx
mov ecx, dword [esp + 0x54]
add ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
push edx
push ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x44], eax
call fcn.004a86ae
push dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
mov edx, edi
mov ecx, esi
call fcn.004a85b0
mov eax, dword [esp + 0x4c]
add esp, 0xc
test byte [eax + 0xa], 0x80
jne 0x4a944b
mov ecx, dword [esp + 0x3c]
call fcn.0047dca3
test eax, eax
je 0x4a944b
mov eax, dword [esp + 0x54]
mov ecx, esi
add eax, dword [esp + 0x24]
push ebx
push dword [esp + 0x1c]
push eax
push 0x32
pop edx
call fcn.0046b9a1
add esp, 0xc
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a9469
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x5c]
movzx edx, ax
call fcn.004a7c5a
pop ecx
mov ecx, dword [esp + 0x58]
movzx eax, cx
add dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x3c]
call fcn.0047c0f9
xor ecx, ecx
inc ecx
cmp eax, ecx
jg 0x4a9494
mov edx, dword [esp + 0x40]
mov ecx, edi
call fcn.004a7bae
xor ecx, ecx
inc ecx
jmp 0x4a9498
mov dword [esp + 0x34], ecx
mov byte [esp + 0x2b], bl
mov dword [esp + 0x3c], ecx
jmp 0x4a94da
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x2b], bl
je 0x4a94d4
mov dword [esp + 0x34], ebx
push ebx
add eax, ecx
mov ecx, esi
push eax
push ebx
push 0x4b
pop edx
call fcn.0046b9a1
xor eax, eax
add esp, 0xc
inc eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
jmp 0x4a94de
cmp dword [esp + 0x64], ebx
jne 0x4a94b0
mov eax, dword [esp + 0x5c]
movzx ecx, byte [esp + 0x2b]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
sub eax, ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x14]
push eax
call fcn.004a7c12
mov eax, dword [esp + 0x24]
pop ecx
pop ecx
movzx eax, word [eax + 0x32]
test ax, ax
je 0x4a9514
cmp dword [esp + 0x5c], eax
je 0x4a965e
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4a952f
push ebx
push eax
xor eax, eax
mov ecx, esi
inc eax
push eax
push 0x47
pop edx
call fcn.0046b9a1
add esp, 0xc
cmp dword [edi + 0x34], ebx
je 0x4a9569
push dword [esp + 0x24]
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [edi + 0x34]
push 0x40
pop edx
call fcn.0046bcab
push dword [ebp + 0x18]
mov edx, dword [ebp + 8]
push dword [ebp + 0x14]
mov ecx, dword [esp + 0x28]
push dword [esp + 0x30]
push dword [ebp + 0xc]
call fcn.004a8790
add esp, 0x20
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx + eax*2 + 0x85b424]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
test dword [ecx + 0x2c], 0x100000
je 0x4a95ed
cmp eax, 0x17
jne 0x4a95ed
mov ecx, dword [esp + 0x6c]
push 0xa
mov eax, dword [ecx + 8]
pop ecx
push ebx
push ebx
movsx eax, word [eax]
add eax, 9
cdq
idiv ecx
mov ecx, esi
push eax
push 0x7c
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x38], eax
cmp dword [esp + 0x40], ebx
je 0x4a95e9
xor eax, eax
mov ecx, esi
lea edx, [eax + 1]
call fcn.0046bf17
mov esi, dword [esi + 0x6c]
mov edx, dword [esp + 0x38]
inc esi
mov ecx, dword [esp + 0x30]
call fcn.0046c1e8
mov dword [esp + 0x38], ebx
mov dword [eax + 8], esi
mov esi, ecx
mov eax, dword [esp + 0x3c]
push dword [esp + 0x5c]
mov edx, eax
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x20]
push dword [esp + 0x6c]
call fcn.0046bcab
mov eax, dword [esp + 0x74]
add esp, 0x10
test eax, eax
je 0x4a9662
mov eax, dword [esi + 0x6c]
mov ecx, esi
push ebx
add eax, 2
push eax
push ebx
push 9
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x68]
add esp, 0xc
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
push eax
push dword [esp + 0x58]
xor eax, eax
push dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x68]
push dword [esp + 0x6c]
sbb eax, eax
and eax, 4
movzx edx, byte [eax + ecx + 0x85b426]
mov ecx, esi
call fcn.0046bcab
add esp, 0x10
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
mov edx, ecx
mov dword [esp + 0x40], edx
cmp dword [esp + 0x68], ebx
je 0x4a975c
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x38], ebx
je 0x4a968f
mov eax, dword [esi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
add edx, dword [esp + 0x24]
movzx eax, ax
push eax
push edx
mov edx, ecx
mov ecx, dword [esp + 0x18]
call fcn.004a86ae
push dword [esp + 0x70]
mov esi, dword [esp + 0x3c]
mov edx, edi
mov ecx, esi
call fcn.004a85b0
mov eax, dword [esp + 0x74]
add esp, 0xc
test byte [eax + 0xa], 0x80
jne 0x4a96f1
mov ecx, dword [esp + 0x34]
call fcn.0047dca3
test eax, eax
je 0x4a96f1
mov eax, dword [esp + 0x54]
mov ecx, esi
add eax, dword [esp + 0x24]
push ebx
push dword [esp + 0x1c]
push eax
push 0x32
pop edx
call fcn.0046b9a1
add esp, 0xc
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4a972e
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x24]
movzx edx, ax
call fcn.004a7c5a
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
pop ecx
mov ecx, dword [esp + 0x54]
push eax
movzx eax, dx
mov edx, dword [esp + 0x28]
push eax
lea edx, [ecx + edx]
mov ecx, dword [esp + 0x18]
call fcn.004a7c12
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
movzx eax, cx
add dword [esp + 0x40], eax
mov ecx, dword [esp + 0x34]
call fcn.0047c0f9
xor ecx, ecx
inc ecx
cmp eax, ecx
jg 0x4a9756
mov edx, dword [esp + 0x68]
mov ecx, edi
call fcn.004a7bae
jmp 0x4a9789
mov dword [esp + 0x14], ecx
jmp 0x4a9789
cmp byte [esp + 0x47], bl
je 0x4a9789
test eax, eax
jne 0x4a9784
mov eax, dword [esp + 0x54]
push ebx
add eax, ecx
mov ecx, esi
push eax
push ebx
push 0x4b
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov dword [esp + 0x14], ebx
inc edx
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a979c
mov ecx, dword [esp + 0x50]
mov edx, eax
call fcn.00450d66
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4a97af
mov ecx, dword [esp + 0x50]
mov edx, eax
call fcn.00450d66
cmp dword [edi + 0x44], ebx
jne 0x4a97ba
mov eax, dword [esi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4a9822
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4a97e4
mov eax, dword [esi + 0x6c]
push ebx
add eax, 3
push eax
push ecx
push 0x11
pop edx
mov ecx, esi
call fcn.0046b9a1
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov ecx, dword [esp + 0x4c]
push eax
push dword [esp + 0x58]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x20]
push dword [esp + 0x6c]
movzx edx, byte [eax + ecx*2 + 0x85dca8]
mov ecx, esi
call fcn.0046bcab
mov eax, dword [esp + 0x48]
add esp, 0x10
test eax, eax
je 0x4a9822
mov edx, eax
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4a986d
mov eax, dword [esi + 0x6c]
push ebx
add eax, 2
push eax
push ecx
push 0x10
pop edx
mov ecx, esi
call fcn.0046b9a1
mov ecx, dword [esp + 0x64]
add esp, 0xc
mov eax, dword [esp + 0x40]
add eax, ecx
push eax
push dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push dword [esp + 0x20]
push dword [esp + 0x6c]
movzx edx, byte [ecx + eax*2 + 0x85dca8]
mov ecx, esi
call fcn.0046bcab
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x2c]
test eax, 0x40000
je 0x4a9899
mov eax, dword [esp + 0x24]
mov ecx, esi
push eax
push eax
push dword [esp + 0x68]
push 0x7d
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [eax + 0x2c]
test al, 0x40
mov eax, dword [ebp + 8]
je 0x4a98b7
mov ecx, 0x1020
test word [eax + 0x28], cx
jne 0x4a98b7
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4a9984
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x2c], ebx
mov ecx, dword [edx + 0xc]
test byte [ecx + 0x1c], 0x80
jne 0x4a98e7
mov esi, dword [esp + 0x60]
mov ecx, eax
push esi
push dword [esp + 0x4c]
call fcn.004a85e5
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
pop ecx
pop ecx
jmp 0x4a9990
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x60]
je 0x4a998c
call fcn.004877d3
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
movzx edx, word [eax + 0x32]
call fcn.00481eb5
and dword [esp + 0x38], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 0x32]
mov edx, ecx
cmp word [esp + 0x38], cx
jae 0x4a9964
mov edi, ebx
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x6c]
mov dx, word [eax + edi*2]
call fcn.004877eb
movsx ecx, ax
mov eax, dword [esp + 0xc]
add eax, edi
push eax
push ecx
push dword [esp + 0x68]
mov ecx, esi
push 0x5e
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x20]
add esp, 0xc
inc edi
movzx ecx, word [eax + 0x32]
cmp edi, ecx
jl 0x4a9926
mov edi, dword [ebp + 0x10]
mov edx, ecx
movzx eax, dx
mov ecx, esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x88]
push dword [esp + 0x54]
push 0x1c
pop edx
call fcn.0046bcab
add esp, 0x10
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x60]
cmp dword [edi], ebx
jne 0x4a99a7
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x4a99a7
push dword [esp + 0x70]
mov edx, eax
call fcn.004a8729
pop ecx
mov ecx, dword [esp + 0x1c]
test dword [ecx + 0x2c], 0x1000
je 0x4a99ba
mov byte [edi + 0x3d], 0xb8
jmp 0x4a99c6
cmp dword [esp + 0x4c], ebx
sete al
add al, 0x26
mov byte [edi + 0x3d], al
xor edx, edx
mov dword [edi + 0x40], esi
mov al, byte [ecx + 0x2e]
inc edx
and al, dl
mov byte [edi + 0x3e], al
test byte [ecx + 0x2c], 0xf
jne 0x4a99dd
mov byte [edi + 0x3f], dl
cmp dword [esp + 0x2c], ebx
je 0x4aa04f
mov dword [esp + 0x6c], ebx
jmp 0x4aa04f
test edx, 0x2000
je 0x4aa00a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x38], ebx
mov eax, dword [edx + 0x28]
mov dword [esp + 0x5c], eax
inc eax
inc dword [edx + 0x2c]
dec dword [edx + 0x38]
mov dword [edx + 0x28], eax
mov eax, dword [edx + 0x2c]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [edx + 0x38]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x18], ebx
mov eax, dword [eax + 0x38]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x40], eax
mov eax, dword [ebp + 8]
mov byte [edi + 0x3d], 0x43
mov al, byte [eax + 0x2c]
cmp al, 1
jbe 0x4a9b42
movzx eax, al
sub eax, dword [ebp + 0xc]
dec eax
imul ecx, eax, 0x48
push ebx
mov dword [esp + 0x10], eax
add ecx, 0x50
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0045101b
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x64], ecx
test ecx, ecx
jne 0x4a9a9e
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
jmp 0x4aa501
mov edx, dword [esp + 0xc]
lea edi, [ecx + 8]
mov esi, dword [esp + 0x74]
push 0x12
lea eax, [edx + 1]
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
xor eax, eax
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 8]
inc eax
mov ecx, dword [esi + 4]
add ecx, 8
mov dword [esp + 0x34], ecx
cmp edx, eax
jl 0x4a9b08
mov ebx, dword [esp + 0x64]
mov eax, dword [ebp + 0x10]
add ebx, 0x50
add eax, 0x9c
mov dword [esp + 0xc], eax
movzx eax, byte [eax]
mov edi, ebx
imul esi, eax, 0x48
add ebx, 0x48
mov eax, dword [esp + 0xc]
push 0x12
add eax, 0x60
mov dword [esp + 0x10], eax
add esi, ecx
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x34]
sub edx, 1
jne 0x4a9ae0
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
test byte [eax + 0x28], 0x10
jne 0x4a9b95
test byte [ecx + 0x1c], 0x80
jne 0x4a9b4e
inc dword [edx + 0x2c]
mov ecx, esi
mov eax, dword [edx + 0x2c]
push ebx
push eax
push ebx
push 0x4b
pop edx
mov dword [esp + 0x44], eax
call fcn.0046b9a1
add esp, 0xc
jmp 0x4a9b87
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
jmp 0x4a9b17
call fcn.004877d3
mov esi, eax
mov eax, dword [edx + 0x28]
push ebx
mov dword [esp + 0x3c], eax
lea ecx, [eax + 1]
mov dword [edx + 0x28], ecx
movzx ecx, word [esi + 0x32]
push ecx
mov ecx, dword [esp + 0x38]
push eax
push 0x76
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, esi
call fcn.0046c1cd
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x14], eax
push ebx
push dword [esp + 0x44]
mov ecx, esi
push ebx
push 0x47
pop edx
call fcn.0046b9a1
mov dword [esp + 0x84], eax
xor ecx, ecx
mov eax, dword [esp + 0x7c]
inc ecx
add esp, 0xc
cmp dword [eax + 0xc], ecx
jle 0x4a9c6b
mov esi, dword [esp + 0x10]
mov edx, ebx
mov dword [esp + 0xc], edx
mov ecx, ebx
mov dword [esp + 0x34], ebx
jmp 0x4a9bd3
mov eax, edi
mov eax, dword [eax + 0x18]
add eax, ecx
mov edi, dword [eax]
mov dword [esp + 0x20], edi
cmp eax, dword [esp + 0x4c]
je 0x4a9c31
mov edi, 0x8006
test word [eax + 0xa], di
jne 0x4a9c31
mov edi, 0x3fff
test word [eax + 0xc], di
je 0x4a9c31
mov eax, dword [esp + 0x20]
test dword [eax + 4], 0x400000
jne 0x4a9c31
mov ecx, dword [esp + 0x50]
mov edx, eax
push ebx
push ebx
call fcn.0047cd6c
mov edx, dword [esp + 0x20]
mov ecx, esi
push eax
call fcn.0047c955
mov ecx, dword [esp + 0x40]
add esp, 0xc
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
jmp 0x4a9c35
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x70]
inc edx
add ecx, 0x30
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], ecx
cmp edx, dword [edi + 0xc]
jl 0x4a9bd1
mov edi, dword [ebp + 0x10]
mov esi, dword [esp + 0x30]
test eax, eax
je 0x4a9c6b
mov ecx, dword [esp + 0x10]
mov edx, 0x1002c
push eax
push ebx
call fcn.0047c7e0
pop ecx
pop ecx
mov dword [esp + 0x18], eax
xor eax, eax
push str.MULTI_INDEX_OR
inc eax
push eax
push dword [esp + 0x18]
call fcn.0046bbd8
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x20], ebx
cmp dword [edx + 0xc], ebx
jle 0x4a9f73
imul eax, ecx, 0x30
add eax, dword [edx + 0x18]
mov edx, dword [esp + 0x48]
cmp dword [eax + 0x14], edx
je 0x4a9cb1
mov edx, 0x400
test word [eax + 0xc], dx
je 0x4a9f5c
mov edx, dword [eax]
mov edi, ebx
mov dword [esp + 0x60], edi
test edx, edx
je 0x4a9cd4
mov ecx, dword [esp + 0x50]
push ebx
push ebx
call fcn.0047cd6c
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x4a9cda
mov eax, ebx
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x84], eax
cmp byte [edx + 0x57], 0
je 0x4a9cf8
test eax, eax
je 0x4a9f5c
jmp 0x4a9f4d
mov edx, dword [esp + 0x18]
test edx, edx
je 0x4a9d07
mov dword [edx + 0xc], eax
mov dword [esp + 0xc], edx
lea eax, [ecx + 1]
push eax
xor eax, eax
push str.INDEX__d
inc eax
push eax
push dword [esp + 0x1c]
call fcn.0046bbd8
push dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x24]
push 0x20
push ebx
push ebx
push ebx
push dword [esp + 0x30]
call fcn.004b1b23
add esp, 0x28
mov dword [esp + 0x88], eax
test eax, eax
je 0x4a9f42
mov edx, dword [esp + 0x64]
lea ecx, [eax + 0x2f8]
push ebx
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004a779d
mov eax, dword [ebp + 8]
pop ecx
pop ecx
test byte [eax + 0x28], 0x10
jne 0x4a9e97
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
mov eax, dword [eax + 0xc]
dec eax
cmp ecx, eax
pop eax
cmove ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
test byte [eax + 0x1c], 0x80
jne 0x4a9dc6
mov edi, dword [esp + 0x14]
mov edx, 0x87
push ebx
push edi
push dword [esp + 0x50]
mov ecx, esi
call fcn.0046b9a1
add esp, 0xc
mov ecx, esi
push dword [esp + 0xc]
push edi
push ebx
push dword [esp + 0x44]
push 0x2f
pop edx
call fcn.0046bcab
add esp, 0x10
mov edi, eax
jmp 0x4a9e97
mov ecx, eax
call fcn.004877d3
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
movzx edi, word [eax + 0x32]
mov edx, edi
call fcn.00481eb5
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ebx
test edi, edi
je 0x4a9e19
mov edx, dword [esp + 0x3c]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, esi
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
push eax
push dword [esp + 0x50]
call fcn.0047f27c
mov eax, dword [esp + 0x40]
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x4a9dec
xor ebx, ebx
cmp dword [esp + 0xc], 0
je 0x4a9e3f
push edi
push eax
push ebx
push dword [esp + 0x44]
mov ecx, esi
push 0x1d
pop edx
call fcn.0046bcab
add esp, 0x10
mov dword [esp + 0x60], eax
cmp dword [esp + 0xc], 0
jl 0x4a9e82
push dword [esp + 0x14]
mov ecx, esi
push edi
push dword [esp + 0x3c]
push 0x61
pop edx
call fcn.0046b9a1
add esp, 0xc
mov edx, 0x8a
mov ecx, esi
push edi
push dword [esp + 0x38]
push dword [esp + 0x1c]
push dword [esp + 0x44]
call fcn.0046bcab
add esp, 0x10
cmp dword [esp + 0xc], 0
je 0x4a9e82
push 0x10
pop edx
mov ecx, esi
call fcn.0046bf17
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
push edi
call fcn.00481eeb
mov edi, dword [esp + 0x64]
add esp, 4
push ebx
push dword [esp + 0x58]
mov ecx, esi
push dword [esp + 0x48]
push 0xa
pop edx
call fcn.0046b9a1
add esp, 0xc
test edi, edi
je 0x4a9ec0
mov edx, edi
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x68]
push 1
pop edx
mov eax, dword [edi + 0x30]
test al, 2
cmovne ecx, edx
mov edx, dword [edi + 0x348]
mov dword [esp + 0x68], ecx
mov ecx, eax
test dword [edx + 0x2c], 0x200
je 0x4a9f21
cmp dword [esp + 0x20], 0
je 0x4a9eff
mov esi, dword [esp + 0x58]
cmp dword [edx + 0x20], esi
mov esi, dword [esp + 0x30]
jne 0x4a9f21
mov esi, dword [esp + 0x3c]
test byte [esi + 0x1c], 0x80
mov esi, dword [esp + 0x30]
je 0x4a9ffc
mov edx, dword [edx + 0x20]
mov dword [esp + 0x58], edx
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
jne 0x4a9f25
mov dword [esp + 0x58], ebx
xor edx, edx
inc edx
test dl, cl
je 0x4a9f32
mov eax, dword [ebp + 8]
or dword [eax + 0x30], edx
mov ecx, edi
call fcn.004b2538
mov ecx, dword [esp + 0x10]
call fcn.0046bc29
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4a9f58
mov ecx, dword [esp + 0x50]
mov edx, eax
call fcn.0047cbeb
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x20], ecx
mov edx, eax
cmp ecx, dword [eax + 0xc]
jl 0x4a9c93
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
call fcn.0046bc29
mov eax, dword [esp + 0x58]
mov dword [edi + 0x48], eax
test eax, eax
je 0x4a9f8e
mov eax, dword [esp + 0x5c]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4a9fa4
mov ecx, dword [esp + 0x50]
mov edx, eax
mov dword [eax + 0xc], ebx
call fcn.0047cbeb
mov edx, dword [esp + 0x78]
mov ecx, esi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov dword [eax + 4], ecx
mov ecx, esi
mov edx, dword [edi + 0xc]
call fcn.0046b9fa
mov edx, dword [esp + 0x54]
mov ecx, esi
call fcn.0046bd45
mov eax, dword [esi + 0x6c]
xor ecx, ecx
mov dword [edi + 0x44], eax
inc ecx
mov eax, dword [ebp + 8]
cmp byte [eax + 0x2c], cl
jbe 0x4a9fe8
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
call fcn.00450d17
cmp dword [esp + 0x68], 0
jne 0x4aa04f
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.004a7bae
jmp 0x4aa04f
mov ecx, eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x58], eax
jmp 0x4a9f25
mov eax, dword [esp + 0x74]
test byte [eax + 0x28], 0x40
je 0x4aa01a
mov byte [edi + 0x3d], 0xb8
jmp 0x4aa04f
mov ecx, dword [esp + 0x4c]
push ebx
push dword [esp + 0x38]
mov al, byte [ecx + 0x859cf8]
movzx edx, byte [ecx + 0x859e90]
mov ecx, esi
mov byte [edi + 0x3d], al
mov eax, dword [esp + 0x50]
push eax
mov dword [edi + 0x40], eax
call fcn.0046b9a1
add esp, 0xc
inc eax
mov dword [edi + 0x44], eax
xor eax, eax
inc eax
mov byte [edi + 0x3f], al
mov ecx, dword [esp + 0x70]
xor eax, eax
cmp dword [esp + 0x6c], eax
sete al
inc eax
mov dword [esp + 0x38], eax
mov esi, dword [ecx + 0x18]
mov eax, ebx
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
jle 0x4aa1be
movzx edx, word [esi + 0xa]
mov dword [esp + 0xc], ebx
test dl, 6
jne 0x4aa1a1
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x58]
and eax, dword [edi + 0x5c]
or ecx, eax
je 0x4aa0a6
mov eax, dword [ebp + 8]
or dword [eax + 0x30], 2
jmp 0x4aa19d
mov eax, dword [esp + 0x74]
mov ecx, dword [esi]
mov dword [esp + 0x14], ecx
mov al, byte [eax + 0x24]
test al, 0x58
je 0x4aa0f3
test byte [ecx + 4], 3
je 0x4aa19d
test al, 8
je 0x4aa0d1
xor eax, eax
inc eax
test byte [ecx + 4], al
je 0x4aa19d
mov edx, dword [ecx + 0x24]
mov ecx, dword [esp + 0x7c]
call fcn.004acb3a
and eax, dword [edi + 0x58]
and edx, dword [edi + 0x5c]
or eax, edx
jne 0x4aa19d
movzx edx, word [esi + 0xa]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x4aa119
push dword [esp + 0x6c]
mov edx, dword [edi + 4]
call fcn.0048185b
pop ecx
test eax, eax
jne 0x4aa11e
push 2
pop eax
mov dword [esp + 0x18], eax
jmp 0x4aa1a1
cmp eax, 3
jge 0x4aa136
movzx edx, word [esi + 0xa]
test edx, 0x1000
je 0x4aa136
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4aa1a1
push 3
jmp 0x4aa10f
test edx, 0x200
je 0x4aa164
mov edx, dword [edi + 0x2c]
test edx, edx
je 0x4aa164
mov ecx, dword [esp + 0x30]
mov eax, edx
push ebx
shr eax, 1
push ebx
push eax
xor eax, eax
inc eax
and edx, eax
or edx, 0x10
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0xc], eax
push 0x10
push dword [esp + 0x84]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.00480e00
mov eax, dword [esp + 0x1c]
add esp, 0x10
test eax, eax
je 0x4aa196
mov ecx, dword [esp + 0x30]
mov edx, eax
call fcn.0046c1e8
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
push 4
pop eax
or word [esi + 0xa], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add esi, 0x30
dec ecx
mov dword [esp + 0x2c], ecx
test ecx, ecx
jg 0x4aa079
mov ecx, dword [esp + 0x70]
mov esi, dword [ecx + 0x18]
jmp 0x4aa1c2
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x38], eax
test eax, eax
jg 0x4aa061
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x14], eax
test eax, eax
jle 0x4aa2df
add esi, 0xc
mov edi, eax
mov dword [esp + 0xc], esi
test byte [esi - 2], 6
jne 0x4aa2c8
movzx eax, word [esi]
test al, 0x82
push 0xb
setne cl
pop edx
bt ax, dx
setb al
test al, cl
je 0x4aa2c8
mov ecx, dword [esp + 0x48]
cmp dword [esi + 8], ecx
jne 0x4aa2c8
mov eax, dword [esp + 0x74]
test byte [eax + 0x24], 0x58
jne 0x4aa2c8
mov eax, dword [esi - 0xc]
mov edx, ecx
mov ecx, dword [esp + 0x70]
push ebx
push 0x83
push dword [ebp + 0x18]
mov dword [esp + 0x88], eax
push dword [ebp + 0x14]
push dword [esi + 0xc]
call fcn.004ace7e
mov edx, eax
add esp, 0x14
mov dword [esp + 0x78], edx
test edx, edx
je 0x4aa2c8
test byte [edx + 0xa], 4
jne 0x4aa2c8
xor ecx, ecx
inc ecx
test byte [edx + 0xc], cl
je 0x4aa279
mov eax, dword [edx]
test dword [eax + 4], 0x1000
je 0x4aa279
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], ecx
jg 0x4aa2c8
mov esi, dword [edx]
lea edi, [esp + 0x8c]
mov eax, dword [esp + 0x7c]
push 0xd
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xc]
push 0x10
push dword [esp + 0x84]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x1c]
call fcn.00480e00
mov eax, dword [esp + 0x88]
add esp, 0x10
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
push 4
pop ecx
or word [eax + 0xa], cx
dec edi
add esi, 0x30
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], esi
test edi, edi
jg 0x4aa1e6
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4aa440
movzx eax, byte [edi + 0x3c]
imul ecx, eax, 0x48
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [ecx + eax + 0x18]
mov dword [esp + 0x84], eax
test byte [eax + 0x1c], 0x80
jne 0x4aa342
mov ecx, dword [esp + 0x10]
push 2
pop edx
call fcn.00481eb5
push ebx
mov edx, 0x87
mov dword [esp + 0x3c], eax
lea ecx, [eax + 1]
push ecx
push dword [edi + 4]
mov ecx, dword [esp + 0x3c]
call fcn.0046b9a1
mov edi, dword [esp + 0x44]
xor eax, eax
add esp, 0xc
inc eax
mov dword [esp + 0x20], eax
jmp 0x4aa39f
mov ecx, eax
call fcn.004877d3
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], eax
movzx esi, word [eax + 0x32]
mov dword [esp + 0x20], esi
lea edx, [esi + 1]
call fcn.00481eb5
mov dword [esp + 0x7c], ebx
mov edi, eax
mov dword [esp + 0x38], edi
test esi, esi
je 0x4aa39f
mov edx, dword [esp + 0x84]
lea eax, [edi + 1]
mov ecx, dword [esp + 0x30]
add eax, ebx
push eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
movsx eax, word [eax + ebx*2]
push eax
push dword [esp + 0x50]
call fcn.0047f27c
add esp, 0xc
inc ebx
cmp ebx, esi
jl 0x4aa36f
xor ebx, ebx
push dword [esp + 0x20]
mov eax, dword [esp + 0x18]
lea esi, [edi + 1]
mov ecx, dword [esp + 0x34]
push esi
push ebx
push dword [eax]
push 0x1d
pop edx
call fcn.0046bcab
push dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edi, eax
push dword [esp + 0x34]
push esi
push 0x61
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x30]
add esp, 0x1c
mov ecx, dword [esp + 0x30]
mov edx, 0x8a
push dword [esp + 0x20]
push esi
push dword [esp + 0x40]
push dword [eax]
call fcn.0046bcab
push dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, 0xb4
push esi
mov esi, dword [esp + 0x48]
mov ecx, esi
push ebx
push dword [eax + 4]
call fcn.0046bcab
push 0x10
pop edx
mov ecx, esi
call fcn.0046bf17
mov edx, edi
call fcn.0046c1e8
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
inc eax
push eax
call fcn.00481eeb
mov edi, dword [ebp + 0x10]
add esp, 0x24
jmp 0x4aa444
mov esi, dword [esp + 0x30]
cmp dword [edi], 0
je 0x4aa46d
mov eax, dword [esi + 0x6c]
mov ecx, esi
push ebx
push dword [edi]
mov dword [edi + 0x1c], eax
xor eax, eax
inc eax
push eax
push 0x47
pop edx
call fcn.0046b9a1
add esp, 0xc
cmp dword [edi + 0x38], ebx
je 0x4aa49f
mov esi, dword [edi + 0x38]
jmp 0x4aa478
mov esi, dword [edi + 0x38]
test esi, esi
je 0x4aa4fb
mov ecx, dword [esp + 0x30]
push ebx
push dword [esi + 8]
push ebx
push 0x4a
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0xc], eax
inc byte [edx + 0x1a]
jmp 0x4aa4a3
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov esi, dword [eax + 0x18]
cmp dword [eax + 0x14], ebx
jle 0x4aa4fb
test byte [esi + 0xa], 6
jne 0x4aa4ea
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x58]
and eax, dword [edi + 0x5c]
or ecx, eax
jne 0x4aa4ea
mov eax, dword [esp + 0x74]
test byte [eax + 0x24], 0x40
jne 0x4aa4ea
push 0x10
push dword [esp + 0x84]
push dword [esi]
push edx
call fcn.00480e00
add esp, 0x10
push 4
pop eax
or word [esi + 0xa], ax
mov edx, dword [esp + 0x70]
inc ebx
add esi, 0x30
cmp ebx, dword [edx + 0x14]
mov edx, dword [esp + 0x10]
jl 0x4aa4af
mov eax, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret