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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx]
mov esi, dword [eax]
push esi
call fcn.0047fc91
add esp, 4
mov dword [esp + 0x34], eax
inc eax
je 0x4987b9
add eax, 7
shr eax, 3
add eax, eax
add eax, eax
add eax, eax
xor ecx, ecx
mov dword [esp + 0x38], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
mov ecx, dword [esp + 0x38]
add esp, 4
lea edx, [ecx + ecx + 2]
push edx
push esi
push eax
mov dword [esp + 0x3c], eax
call fcn.0047f930
add esp, 0xc
push 4
call fcn.004800a7
add esp, 4
test eax, eax
je 0x4987c3
mov dword [eax], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x140], 0
mov dword [esp + 0x3c], eax
je 0x498899
cmp dword [eax], 1
jg 0x4987ca
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [fcn.0047d620]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x13c]
test esi, esi
jne 0x498831
mov esi, dword [eax + 0x134]
test esi, esi
je 0x498899
mov dword [esp + 0x1c], esi
lea esp, [esp]
mov edx, dword [esi + 4]
cmp edx, dword [esp + 0x34]
jne 0x478f95
test edx, edx
je 0x4780d9
mov ecx, dword [esp + 0x30]
mov eax, dword [esi]
jmp 0x4780c0
mov si, word [eax]
cmp si, word [ecx]
jne 0x478f91
add eax, 2
add ecx, 2
dec edx
jne 0x4780c0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
dec dword [eax]
jne 0x4780fb
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0047fcac
mov edx, dword [esp + 0x40]
add esp, 4
push edx
call fcn.0047fcac
add esp, 4
mov eax, esi
test eax, eax
je 0x4988a2
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
mov dword [esp + 0x44], ecx
mov dword [esp + 0xcc], edx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x148]
inc eax
mov dword [edi], eax
mov esi, dword [ebx + 4]
mov dword [esp + 0xdc], ecx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + eax*4]
cmp word [esi + 8], 0x47
mov dword [esp + 0x30], 0x482cdc
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], 0x4865a4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
jne 0x498825
inc eax
mov dword [esp + 0x7c], edx
mov edx, eax
mov dword [esp + 0x18], ecx
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [edi], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + eax*4]
movsx ecx, word [ecx + 8]
cmp ecx, 0x47
jge 0x4781ac
inc eax
jmp 0x478198
sub ecx, 0x47
je 0x4988fe
dec ecx
jne 0x4988d5
test esi, esi
jne 0x4988f7
mov dword [esp + 0x14], eax
inc eax
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
cmp eax, dword [0x4a3fd8]
jg 0x498904
cmp eax, ecx
jle 0x498904
shl eax, 4
add eax, dword [0x4a400c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x5c], ecx
jle 0x4783c2
mov dword [esp + 0x10], 3
mov dword [esp + 0x78], ecx
lea ecx, [ecx]
cmp edx, dword [esp + 0x14]
jae 0x4783c2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
xor edi, edi
xor bl, bl
cmp word [ecx + 8], di
je 0x49890d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + edx*4]
cmp word [edx + 8], 0x33
je 0x47824e
xor bl, bl
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
cmp esi, eax
je 0x478fa9
push 1
call fcn.004800a7
add esp, 4
test eax, eax
je 0x498945
mov byte [eax], bl
mov edx, dword [esp + 0x64]
mov dword [edx + esi*4], eax
inc esi
mov dword [esp + 0x68], esi
test bl, bl
jne 0x49894c
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x498a56
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x498a69
cmp eax, 0xa
je 0x498a8e
cmp eax, 5
je 0x498aa5
cmp eax, 0xb
je 0x498ab3
cmp eax, 0xc
je 0x498ad5
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 0
cmp esi, eax
je 0x479006
mov edi, dword [esp + 0x34]
push 0x10
call fcn.004800a7
add esp, 4
test eax, eax
je 0x498cbb
mov ebx, eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
cmp eax, 1
jne 0x498aec
mov edx, dword [esp + 0x20]
mov dword [ebx], edx
mov eax, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [edi + esi*4], eax
inc esi
push ebx
mov dword [esp + 0x3c], esi
mov esi, dword [edi + esi*4 - 4]
push esi
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.004790a0
test eax, eax
jne 0x499eb8
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ecx + eax*4 + 4]
inc eax
cmp word [edx + 8], 0x41
mov dword [esp + 0x10], eax
je 0x498cc2
mov edx, dword [esp + 0x54]
cmp edx, ebx
je 0x4783c2
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov ecx, 0x40
cmp word [eax + 8], cx
jne 0x498d11
lea eax, [edx + 1]
cmp eax, dword [esp + 0x14]
je 0x498d11
mov esi, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
cmp word [eax + 8], cx
jne 0x4783af
inc dword [esp + 0x10]
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jl 0x478210
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 0x44]
jl 0x499ea8
cmp eax, dword [esp + 0x5c]
jg 0x499ea8
cmp edx, dword [esp + 0x14]
jne 0x499ea8
mov ebx, dword [esp + 0xcc]
xor esi, esi
xor eax, eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
cmp ebx, esi
jl 0x498d23
cmp byte [0x4a2e1d], al
jne 0x498d2c
push 0xc
call fcn.004800a7
add esp, 4
cmp eax, esi
je 0x498dcf
mov edi, eax
mov dword [edi], esi
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], edx
cmp dword [esp + 0x4c], esi
jl 0x498d4d
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x498d55
mov dword [edi], esi
mov ecx, dword [0x4a2e18]
mov dword [edi + 8], ecx
mov dword [0x4a2e18], edi
mov eax, dword [esp + 0x48]
inc dword [0x4a2e14]
cmp eax, esi
jne 0x498dd6
mov eax, 1
cmp dword [esp + 0x5c], eax
jl 0x4788f9
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x10]
xor ebx, ebx
or edx, 0xffffffff
mov word [esp + 0xd8], dx
mov dword [esp + 0xbc], 0x4808e4
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [ecx + esi*4]
lea edx, [ecx + esi*4]
xor eax, eax
mov word [esp + 0xda], ax
mov dword [esp + 0x14], eax
cmp word [edi + 8], bx
je 0x498e29
mov edx, dword [esp + 0x78]
cmp edx, dword [esp + 0x70]
jg 0x498e90
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [edi + edx*4]
or eax, 0x200
cmp byte [edi], bl
jne 0x498e60
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + esi*4]
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [eax + ecx]
mov edi, dword [eax]
cmp dword [0x4a2e14], ebx
je 0x498f5a
mov dword [esp + 0x18], edx
cmp byte [0x4a2e1d], bl
jne 0x498f6d
mov ebx, dword [0x4a2e18]
xor eax, eax
mov dword [esp + 0x14], ebx
cmp dword [ebx], eax
je 0x47861c
test byte [0x4a44c4], 1
mov byte [esp + 0x43], al
je 0x498f7b
mov dword [0x4a44c0], eax
mov dword [0x4a44bc], eax
mov eax, 0x4a44a4
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
test eax, eax
je 0x498fa0
test edx, edx
je 0x498fa8
cmp eax, edx
jb 0x498fc8
test eax, eax
je 0x498fb9
mov ecx, dword [ecx]
mov edx, eax
mov eax, dword [edi]
mov bx, word [eax]
cmp bx, word [ecx]
jne 0x4785ba
add eax, 2
add ecx, 2
dec edx
jne 0x4785a4
jmp 0x498fb5
mov ebx, dword [esp + 0x14]
jb 0x498fc0
mov eax, 1
test eax, eax
js 0x498fd6
jle 0x499071
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x499028
cmp byte [esp + 0x43], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x18], ecx
mov eax, dword [ebx]
mov ecx, dword [0x4a44c0]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx]
mov eax, dword [0x4a44bc]
mov dword [edx + 0x1c], eax
jne 0x49907b
and esi, 0xff00
push 0x20
mov dword [esp + 0x48], esi
call fcn.004800a7
add esp, 4
test eax, eax
je 0x49909e
mov esi, eax
xor ecx, ecx
mov eax, 8
mov dword [esi + 8], eax
mov edx, 2
mul edx
seto cl
mov dword [esi + 4], 0
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
add esp, 4
xor ecx, ecx
mov dword [esi], eax
push 4
mov word [eax], cx
call fcn.004800a7
add esp, 4
test eax, eax
je 0x499097
mov dword [eax], 1
mov dword [esi + 0xc], eax
mov ebx, esi
cmp ebx, edi
je 0x4786be
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jg 0x4990a5
mov esi, dword [edi + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], esi
cmp dword [ebx + 8], eax
jb 0x4990c4
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
lea eax, [edx + edx + 2]
mov edx, dword [ebx]
push eax
push ecx
push edx
call fcn.0047f930
add esp, 0xc
mov eax, dword [esp + 0x44]
push 0x10
mov dword [ebx + 0x10], eax
call fcn.004800a7
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x47872b
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 8]
mov esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x58], esi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp eax, 0xb
ja 0x478727
jmp dword [eax*4 + 0x40a464]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
mov esi, dword [eax]
cmp esi, edi
je 0x479059
test byte [0x4a44c4], 1
je 0x499278
mov eax, 0x4a44a4
mov dword [0x4a44c0], edi
mov dword [0x4a44bc], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], eax
lea ebx, [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [esi + 4]
cmp eax, edi
je 0x49929b
cmp edx, edi
je 0x4992a3
cmp eax, edx
jb 0x4992c3
cmp eax, edi
jbe 0x4992b2
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
lea esp, [esp]
mov di, word [eax]
cmp di, word [ecx]
jne 0x4787b6
add eax, 2
add ecx, 2
dec edx
jne 0x4787a0
jmp 0x4992b0
jb 0x4992b9
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4992d1
jle 0x4787de
lea eax, [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
jne 0x499330
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x74]
mov dword [edx + 0x18], ecx
mov eax, dword [0x4a44c0]
mov edx, dword [esi + 4]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4a44bc]
mov dword [esi + 0x1c], ecx
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x49937e
cmp edx, edi
je 0x499386
cmp eax, edx
jb 0x4993a6
cmp eax, edi
jbe 0x499395
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [ebx]
nop
mov di, word [eax]
cmp di, word [ecx]
jne 0x478846
add eax, 2
add ecx, 2
dec edx
jne 0x478830
jmp 0x499393
jb 0x49939c
mov eax, 1
xor edi, edi
cmp eax, edi
jl 0x4993b4
jle 0x4993c5
mov ecx, dword [0x4a44bc]
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], esi
mov dword [esi + 0x1c], edi
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + eax + 4]
cmp word [edx + 8], 0x41
je 0x4993cc
add dword [esp + 0x10], 2
mov ax, word [esp + 0xd8]
inc dword [esp + 0x1c]
cmp ax, 0x30
jge 0x499400
cmp dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x4808e4
ja 0x499424
mov ecx, dword [esp + 0xc0]
push ecx
mov dword [esp + 0xc8], 0
call fcn.0047fcac
mov eax, dword [esp + 0x7c]
inc eax
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, dword [esp + 0x5c]
jle 0x478480
mov ebx, dword [esp + 0xcc]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x70]
xor eax, eax
lea ecx, [eax + 1]
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov byte [esp + 0x90], al
mov dword [esp + 0x94], eax
mov byte [esp + 0x98], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0xb0], al
mov eax, dword [esi]
mov dword [esi + 0x148], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
cmp byte [ecx + esi + 0xd], 0
lea edi, [ecx + esi + 4]
jne 0x49944d
push 0x40
call fcn.004800a7
add esp, 4
test eax, eax
je 0x49949f
xor ecx, ecx
mov edx, 1
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov byte [eax + 0x10], cl
mov dword [eax + 0x14], ecx
mov byte [eax + 0x18], cl
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], ecx
mov byte [eax + 0x30], cl
mov ecx, dword [edi + 4]
mov dword [eax + 0x38], ecx
mov dword [edi + 4], eax
inc dword [edi]
mov edx, dword [esi + 0xf4]
lea eax, [ebx + 1]
mov ebx, dword [esi + 0x16c]
lea edi, [esi + 0x16c]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.00477b00
cmp ebx, dword [edi]
jb 0x4994a6
mov eax, dword [esp + 0x48]
mov edi, esi
mov ecx, dword [edi]
mov dword [edi + 0xf4], eax
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
lea eax, [edx + edi + 4]
mov eax, dword [eax + 4]
jne 0x4994b4
cmp byte [eax + 0x10], 0
je 0x4996d9
mov ecx, dword [ebp + 0x14]
mov byte [ecx], 1
mov edx, dword [edi]
mov eax, dword [edx + 4]
cmp byte [eax + edi + 0xd], 0
lea eax, [eax + edi + 4]
jne 0x4994bc
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0x10]
cmp ebx, esi
je 0x478aab
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4994c7
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4994d9
cmp eax, 0xa
je 0x4994fa
cmp eax, 5
je 0x49950f
cmp eax, 0xb
je 0x49951b
cmp eax, 0xc
je 0x499539
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
cmp eax, 4
jne 0x49954e
push 0x10
call fcn.004800a7
add esp, 4
test eax, eax
je 0x4996ca
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
cmp byte [edx + edi + 0xd], 0
mov eax, dword [edx + edi + 8]
lea esi, [edx + edi + 4]
jne 0x4996d1
cmp byte [eax + 0x18], 0
jne 0x4996f9
cmp byte [esi + 9], 0
jne 0x49970f
mov eax, dword [esi + 4]
cmp byte [eax + 0x30], 0
jne 0x49971a
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
cmp byte [ecx + ebx + 0xd], 0
lea edi, [ecx + ebx + 4]
jne 0x499736
cmp byte [edi + 8], 0
jne 0x499756
mov esi, dword [edi + 4]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x48], edx
test esi, esi
je 0x478bd1
mov eax, dword [esi + 0x2c]
test eax, eax
jne 0x49975f
mov eax, dword [esi + 0x28]
cmp eax, 8
je 0x499771
cmp eax, 0xa
je 0x499794
cmp eax, 5
je 0x4997aa
cmp eax, 0xb
je 0x4997b7
cmp eax, 0xc
je 0x4997d7
mov dword [esi + 0x28], 1
mov dword [esi + 0x20], 0
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x478b88
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov ecx, dword [ebx + 0xc]
cmp dword [ecx], 0
je 0x4997ed
push ebx
call fcn.0047fcac
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x499809
cmp eax, 0xa
je 0x49982a
cmp eax, 5
je 0x49983f
cmp eax, 0xb
je 0x49984b
cmp eax, 0xc
je 0x499869
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0047fcac
mov ebx, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x48]
mov dword [edi + 4], edx
mov byte [edi + 9], 0
dec dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ebx + 8]
add eax, ebx
cmp byte [eax + 0xd], 0
jne 0x49987e
mov edx, dword [esp + 0x94]
mov dword [ecx + 0x14], edx
cmp byte [eax + 0xd], 0
mov eax, dword [eax + 8]
jne 0x499886
mov byte [eax + 0x18], 0
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
add eax, ebx
cmp byte [eax + 0xd], 0
mov dword [esp + 0x48], eax
jne 0x49988e
mov eax, dword [eax + 8]
lea ebx, [eax + 0x20]
lea eax, [esp + 0xa0]
cmp ebx, eax
je 0x478c91
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x499899
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x4998ab
cmp eax, 0xa
je 0x4998cc
cmp eax, 5
je 0x4998e1
cmp eax, 0xb
je 0x4998ed
cmp eax, 0xc
je 0x49990b
mov eax, dword [esp + 0xa8]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x499920
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
cmp byte [eax + 0xd], 0
jne 0x499b03
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4a2e1d], 0
jne 0x499b0e
mov ecx, dword [0x4a2e18]
cmp byte [0x4a2e1c], 0
jne 0x499b30
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x478da5
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x478cee
push eax
call fcn.00479d20
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x499b40
cmp byte [esi + 0x10], 0
jne 0x478d74
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x478d74
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x478d2e
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x499b4d
push edi
call fcn.0047fcac
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x499b69
cmp eax, 0xa
je 0x499b8a
cmp eax, 5
je 0x499b9f
cmp eax, 0xb
je 0x499bab
cmp eax, 0xc
je 0x499bc9
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.0047fcac
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x478d98
mov edx, dword [esi]
push edx
call fcn.0047fcac
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
push esi
call fcn.0047fcac
mov edi, dword [esp + 0x6c]
add esp, 4
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
push ecx
call fcn.0047fcac
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4a2e18], edx
mov byte [0x4a2e1d], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4a2e14]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x499bde
mov eax, dword [esp + 0xa8]
cmp eax, 8
je 0x499bf4
cmp eax, 0xa
je 0x499c18
cmp eax, 5
je 0x499c32
cmp eax, 0xb
je 0x499c43
cmp eax, 0xc
je 0x499c64
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
cmp eax, ecx
jne 0x499c7e
cmp esi, 8
je 0x499c9b
cmp esi, 0xa
je 0x499ccb
cmp esi, 5
je 0x499cf1
cmp esi, 0xb
je 0x499d09
cmp esi, 0xc
je 0x499d31
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x499d57
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x499d71
cmp eax, 0xa
je 0x499d9d
cmp eax, 5
je 0x499dbb
cmp eax, 0xb
je 0x499dd0
cmp eax, 0xc
je 0x499df9
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x478ed4
xor esi, esi
mov ecx, dword [ebx + esi*4]
push ecx
call fcn.0047fcac
inc esi
add esp, 4
cmp esi, edi
jb 0x478ec3
mov edx, dword [esp + 0x64]
push edx
call fcn.0047fcac
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x478f70
xor ebx, ebx
mov edi, edi
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x478f69
mov edi, dword [esi + 0xc]
test edi, edi
je 0x478f23
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x499e17
push edi
call fcn.0047fcac
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x499e33
cmp eax, 0xa
je 0x499e54
cmp eax, 5
je 0x499e69
cmp eax, 0xb
je 0x499e75
cmp eax, 0xc
je 0x499e93
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.0047fcac
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x478ef0
mov edx, dword [esp + 0x34]
push edx
call fcn.0047fcac
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 0x20]
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x4780a0
jmp 0x498899
add eax, eax
cmp eax, 4
jae 0x478fb5
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
mov edx, dword [esp + 0x68]
add esp, 4
lea ecx, [esi*4]
push ecx
push edx
push eax
mov dword [esp + 0x54], eax
call fcn.0047f930
mov eax, dword [esp + 0x70]
add esp, 0xc
push eax
call fcn.0047fcac
mov ecx, dword [esp + 0x4c]
add esp, 4
mov dword [esp + 0x64], ecx
jmp 0x47825e
add eax, eax
cmp eax, 4
jae 0x479012
mov eax, 4
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
mov ebx, dword [esp + 0x38]
mov edi, eax
add esp, 4
lea eax, [esi*4]
push eax
push ebx
push edi
call fcn.0047f930
add esp, 0xc
push ebx
call fcn.0047fcac
add esp, 4
mov dword [esp + 0x34], edi
jmp 0x4782e3
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], edi
jmp 0x478874
mov eax, 8
jmp 0x478000
xor eax, eax
jmp 0x47804c
mov eax, dword [esp + 0x3c]
dec dword [eax]
lea esi, [esp + 0x30]
call fcn.0047be40
mov edx, dword [esp + 0x34]
inc edx
push edx
call 0x4b1783
xor ecx, ecx
mov esi, eax
mov edx, 2
mul edx
seto cl
mov dword [esp + 0x38], esi
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
push edx
push esi
call fcn.0047f930
add esp, 0xc
mov dword [esp + 0x30], esi
jmp 0x478069
push edx
mov edx, dword [ebp + 8]
push 0x6f
push edx
jmp 0x499eb3
mov eax, dword [eax + 0x140]
dec eax
js 0x498899
mov dword [esp + 0x5c], 0
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx]
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esi + eax*4]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
call fcn.0047a5e0
test eax, eax
jns 0x498880
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x70], eax
jmp 0x49888f
jle 0x4988b6
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x5c], edx
jle 0x49884a
lea ecx, [esp + 0x30]
call fcn.00470bf0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push edi
push ebx
push ecx
call 0x4e7364
jmp 0x478f7f
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jg 0x498899
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + ecx*4]
lea ecx, [esp + 0x30]
call fcn.00470bf0
jmp 0x4780fb
sub ecx, 0x37
jne 0x4781a9
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 - 4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x6f
push eax
jmp 0x499eb3
dec esi
inc eax
jmp 0x478198
inc esi
jmp 0x4781a9
mov dword [esp + 0x50], ecx
jmp 0x4781f3
mov ecx, dword [eax]
mov ecx, dword [ecx]
cmp ecx, 0x24
jne 0x498921
mov bl, 1
jmp 0x49892f
cmp ecx, 0x1e
jne 0x498ccc
mov edi, 0x100
mov ecx, dword [eax + 4]
inc dword [esp + 0x10]
add eax, 4
cmp word [ecx + 8], 0
je 0x49890d
jmp 0x47823c
xor eax, eax
jmp 0x478272
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x33
jne 0x498cd8
mov esi, dword [eax]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
xor ecx, ecx
call fcn.0047abe0
test al, al
je 0x498cf4
test dword [esp + 0x18], 0x100
je 0x4989b9
test edi, 0x100
jne 0x4989b9
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0xb0
push eax
jmp 0x499eb3
mov eax, dword [esp + 0x1c]
mov edi, 1
add dword [esp + 0x54], edi
add dword [esp + 0x10], edi
cmp dword [eax + 8], 5
jne 0x498a2a
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov edx, dword [edx + eax*4]
cmp word [edx + 8], 0x4e
jne 0x498a2a
mov edx, dword [ebp + 8]
push 0
lea eax, [esp + 0x20]
push eax
push edx
lea eax, [esp + 0x60]
call fcn.0047ae00
test eax, eax
je 0x498a2a
lea esi, [esp + 0x20]
call fcn.00477860
lea ecx, [esp + 0x60]
call fcn.0049f9bb
lea ecx, [esp + 0x30]
call fcn.0047f5d0
mov eax, edi
jmp 0x478f7f
lea esi, [esp + 0x20]
call fcn.00477860
mov eax, dword [esp + 0x1c]
push esi
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 6
mov dword [esp + 0x24], eax
call fcn.0047a330
mov ebx, dword [esp + 0x14]
jmp 0x478364
push eax
call 0x4b1765
mov dword [esp + 0x2c], 0
jmp 0x478292
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4782c3
push eax
call dword [0x47d404]
mov edx, dword [esp + 0x20]
push edx
call fcn.0047fcac
add esp, 4
jmp 0x4782c3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4782c3
push eax
call 0x4af9de
jmp 0x4782c3
lea eax, [esp + 0x20]
call fcn.0047d400
jmp 0x4782c3
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
call fcn.0047fcac
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.0047fcac
add esp, 4
jmp 0x4782c3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4782c3
push eax
call 0x4b64a4
jmp 0x4782c3
dec eax
cmp eax, 0xb
ja 0x498b9f
jmp dword [eax*4 + 0x42b2dd]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
jmp 0x478318
xor eax, eax
jmp 0x47831a
add dword [esp + 0x10], 2
jmp 0x478364
push 0xffffffffffffffff
push 0x91
jmp 0x499eaf
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x91
push eax
jmp 0x499eb3
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [edx + eax*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
jmp 0x499eb3
mov ecx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
movsx eax, word [edx + 0xa]
push eax
push 0x6f
jmp 0x499eaf
mov dword [esp + 0x4c], esi
jmp 0x47840b
mov edx, dword [0x4a2e18]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [0x4a2e18]
mov dword [ecx + 4], eax
mov byte [0x4a2e1d], 0
jmp 0x47845b
mov dword [edi + 4], esi
jmp 0x47843e
push 0x20
mov dword [esp + 0x1c], eax
call fcn.004800a7
add esp, 4
cmp eax, esi
je 0x498d76
push eax
call 0x4b64e7
jmp 0x498d78
xor eax, eax
mov ecx, dword [esp + 0x18]
push ecx
mov esi, eax
mov dword [edi], eax
call fcn.0047cb30
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [edi]
mov edx, dword [esi + 0x14]
mov dword [ecx + 0x14], edx
mov ecx, dword [edi]
xor eax, eax
mov dword [ecx + 0x18], eax
mov edx, dword [edi]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [edi]
add ecx, 0x18
push eax
push ecx
mov ecx, edi
call 0x4bdb40
mov edx, dword [esi + 0x1c]
mov eax, dword [edi]
push edx
add eax, 0x1c
push eax
mov ecx, edi
call 0x4bdb40
xor esi, esi
jmp 0x47844c
xor edi, edi
jmp 0x47844c
mov edi, eax
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x498ded
push eax
lea ecx, [esp + 0x4c]
call fcn.00479d20
mov eax, dword [edi + 0x1c]
cmp eax, esi
je 0x498e02
push eax
lea ecx, [esp + 0x4c]
call fcn.00479d20
cmp byte [edi + 0x10], 0
jne 0x498e1e
mov ecx, dword [edi + 0x14]
cmp ecx, esi
je 0x498e1e
push 1
call fcn.0047d350
push edi
call 0x4b1765
jmp 0x47846d
mov edi, dword [edx]
mov edi, dword [edi]
cmp edi, 0x24
je 0x498e4b
cmp edi, 0x1e
jne 0x498e4f
mov dword [esp + 0x14], 0x100
mov eax, dword [esp + 0x14]
inc esi
add edx, 4
mov edi, dword [edx]
cmp word [edi + 8], bx
je 0x498e29
mov dword [esp + 0x10], esi
jmp 0x4784da
mov edi, dword [esp + 0x34]
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + esi*4]
push 1
push eax
push edx
call fcn.004a0d5e
push eax
mov eax, dword [ecx]
push eax
call 0x4c99a9
test al, al
je 0x499467
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x478895
lea ebx, [esp + 0xbc]
call fcn.0047bf30
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 4]
mov dword [esp + 0x7c], 0
mov eax, dword [edx + esi*4 + 8]
movzx ecx, word [eax + 8]
cmp cx, 0x4a
je 0x498ec7
cmp cx, 0x49
jne 0x498ee2
lea edi, [esp + 0xbc]
call fcn.00471120
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + edx*4 + 0xc]
lea edi, [esp + 0xbc]
call fcn.00471120
mov edi, 0x7f
lea esi, [esp + 0xd0]
call fcn.004710b0
mov eax, esi
lea edi, [esp + 0xbc]
call fcn.00471120
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [ebp + 8]
push edi
call fcn.004790a0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x14]
add eax, eax
add eax, eax
mov esi, dword [eax + edx]
mov esi, dword [esi]
mov dword [esp + 0x48], eax
or ecx, 0x200
mov eax, 1
lea edx, [esp + 0x20]
call fcn.00470490
jmp 0x478876
push esi
mov eax, edi
push edx
mov edi, 0x4a2e04
call fcn.004727b0
jmp 0x478876
mov ecx, dword [0x4a2e18]
mov ebx, dword [ecx + 8]
jmp 0x478540
or dword [0x4a44c4], 1
push 0x4a44a4
call 0x4b64e7
push 0x4260c2
call fcn.0047fdda
add esp, 4
xor eax, eax
jmp 0x47855f
test edx, edx
jne 0x498fd6
test eax, eax
jne 0x4785d7
jmp 0x47858e
mov ebx, dword [esp + 0x14]
xor eax, eax
jmp 0x4785c9
or eax, 0xffffffff
jmp 0x4785c9
mov ecx, dword [ecx]
mov eax, dword [edi]
call fcn.0047bc20
jmp 0x4785c9
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x4785e4
push eax
push edi
call fcn.004ae8ab
add esp, 8
test al, al
je 0x499013
mov eax, dword [ebx]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x18], edx
mov ecx, dword [ebx]
mov dword [eax + 0x1c], ecx
mov dword [ebx], eax
cmp dword [eax + 0x18], 0
je 0x4785e4
mov edx, dword [ebx]
mov eax, dword [esp + 0x58]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [ebx], ecx
jmp 0x478572
push edi
push eax
call fcn.004ae8ab
add esp, 8
test al, al
je 0x499058
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebx]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebx]
mov dword [eax + 0x18], edx
mov dword [ebx], eax
cmp dword [eax + 0x1c], 0
je 0x4785e4
mov eax, dword [ebx]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x74], eax
mov dword [ebx], edx
jmp 0x478576
mov byte [esp + 0x43], 1
jmp 0x4785e4
mov ebx, dword [ebx]
test ebx, ebx
je 0x47861c
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 0x14]
push ecx
call fcn.004777a0
jmp 0x478876
xor eax, eax
jmp 0x478681
xor ebx, ebx
jmp 0x478686
dec dword [eax]
mov edx, dword [edi + 4]
mov dword [ebx + 4], edx
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi]
mov dword [ebx], ecx
mov edi, dword [edi + 0xc]
mov dword [ebx + 0xc], edi
inc dword [edi]
jmp 0x4786be
push eax
call 0x4b1783
mov dword [ebx + 8], eax
mov eax, dword [ebx]
test eax, eax
je 0x4990e0
push eax
call fcn.0047fcac
add esp, 4
mov eax, dword [ebx + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004800a7
add esp, 4
xor ecx, ecx
mov dword [ebx], eax
mov word [eax + esi*2], cx
jmp 0x4786a8
or dword [0x4a44c4], 1
push 0x4a44a4
call 0x4b64e7
push 0x4260c2
call fcn.0047fdda
add esp, 4
jmp 0x478751
cmp edx, edi
jne 0x4992d1
cmp eax, edi
jne 0x4787cd
jmp 0x478786
xor edi, edi
xor eax, eax
jmp 0x4787c3
or eax, 0xffffffff
xor edi, edi
jmp 0x4787c3
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0047bc20
jmp 0x4787c3
lea eax, [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, edi
je 0x4787de
push eax
push ebx
mov dword [esp + 0x4c], eax
call fcn.004ae8ab
add esp, 8
test al, al
je 0x49931a
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x1c], esi
mov esi, eax
cmp dword [eax + 0x18], edi
je 0x4787de
add eax, 0x18
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x18], esi
mov dword [esp + 0x74], esi
mov esi, dword [ecx]
jmp 0x478770
push ebx
push eax
mov dword [esp + 0x4c], eax
call fcn.004ae8ab
add esp, 8
test al, al
je 0x499368
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edx], ecx
mov dword [eax + 0x18], esi
mov esi, eax
cmp dword [eax + 0x1c], edi
je 0x4787de
add eax, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x58], esi
mov esi, dword [ecx]
jmp 0x478770
cmp edx, edi
jne 0x4993b4
cmp eax, edi
jne 0x478861
jmp 0x478819
xor edi, edi
xor eax, eax
jmp 0x478853
or eax, 0xffffffff
xor edi, edi
jmp 0x478853
mov ecx, dword [esi]
mov eax, dword [ebx]
call fcn.0047bc20
jmp 0x478853
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], esi
mov dword [esi + 0x18], edi
jmp 0x478870
mov ebx, esi
jmp 0x478870
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + ecx*4 + 8]
movzx eax, word [edx + 8]
cmp ax, 0x4a
je 0x4993f6
cmp ax, 0x49
je 0x4993f6
add dword [esp + 0x10], 4
jmp 0x478895
add dword [esp + 0x10], 5
jmp 0x478895
cmp ax, 0x3f
jg 0x4788ab
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x4788ab
push eax
call 0x4b1765
jmp 0x4788ab
xor esi, esi
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x49943e
push eax
call 0x4b788a
inc esi
cmp esi, dword [esp + 0xc4]
jb 0x499426
jmp 0x4788c4
mov eax, dword [edi + 4]
lea edx, [esp + 0x80]
push edx
push eax
call 0x4dc633
mov byte [edi + 9], 0
jmp 0x4789a4
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + esi*4]
movsx edx, word [ecx + 0xa]
mov eax, dword [ebp + 8]
push edx
push 0x79
push eax
call 0x4c8bd8
lea ecx, [esp + 0xd0]
push ecx
call 0x4b6549
lea ecx, [esp + 0xbc]
call fcn.0047d850
jmp 0x499eb8
xor eax, eax
jmp 0x47899b
call fcn.0047b110
cmp ebx, dword [edi]
jb 0x4994a6
jmp 0x4789cf
mov eax, dword [eax + 0x38]
jmp 0x4789f2
mov ecx, dword [eax + 4]
mov esi, dword [ecx + 0x38]
jmp 0x478a19
push eax
call 0x4b1765
mov dword [ebx + 0xc], 0
jmp 0x478a2f
mov ecx, dword [ebx]
test ecx, ecx
je 0x478a3b
push ecx
call dword [0x47d404]
mov edx, dword [ebx]
push edx
call fcn.0047fcac
add esp, 4
jmp 0x478a5f
mov eax, dword [ebx]
test eax, eax
je 0x478a5f
push eax
call 0x4af9de
jmp 0x478a5f
mov eax, ebx
call fcn.0047d400
jmp 0x478a5f
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
push ecx
call fcn.0047fcac
mov edx, dword [ebx]
add esp, 4
push edx
call fcn.0047fcac
add esp, 4
jmp 0x478a5f
mov eax, dword [ebx]
test eax, eax
je 0x478a5f
push eax
call 0x4b64a4
jmp 0x478a5f
dec eax
cmp eax, 0xb
ja 0x478aab
jmp dword [eax*4 + 0x42b30d]
xor eax, eax
jmp 0x478aa8
mov eax, dword [eax + 0x38]
jmp 0x478ac3
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [eax], 0
call fcn.00477860
mov dword [esi + 8], 1
mov dword [esi], 0
jmp 0x478aab
mov eax, esi
call fcn.00472660
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x94], ecx
jmp 0x478acd
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x38]
jmp 0x478ada
mov eax, esi
call fcn.00472660
add eax, 0x20
push eax
lea ebx, [esp + 0xa4]
call fcn.004777a0
jmp 0x478ae4
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x38]
test eax, eax
je 0x49974a
push eax
call 0x4b7d0e
mov dword [edi + 4], esi
mov byte [edi + 9], 0
jmp 0x478afb
mov byte [edi + 9], 1
jmp 0x478bdc
push eax
call 0x4b1765
mov dword [esi + 0x2c], 0
jmp 0x478b22
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x478b2e
push ecx
call dword [0x47d404]
mov eax, dword [esi + 0x20]
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478b52
mov eax, dword [esi + 0x20]
test eax, eax
je 0x478b52
push eax
call 0x4af9de
jmp 0x478b52
lea eax, [esi + 0x20]
call fcn.0047d400
jmp 0x478b52
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0047fcac
mov eax, dword [esi + 0x20]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478b52
mov eax, dword [esi + 0x20]
test eax, eax
je 0x478b52
push eax
call 0x4b64a4
jmp 0x478b52
mov edx, dword [ebx]
push edx
call fcn.0047fcac
mov eax, dword [ebx + 0xc]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478b78
mov ecx, dword [esi]
test ecx, ecx
je 0x478b94
push ecx
call dword [0x47d404]
mov ecx, dword [esi]
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478bb8
mov eax, dword [esi]
test eax, eax
je 0x478bb8
push eax
call 0x4af9de
jmp 0x478bb8
mov eax, esi
call fcn.0047d400
jmp 0x478bb8
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0047fcac
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478bb8
mov eax, dword [esi]
test eax, eax
je 0x478bb8
push eax
call 0x4b64a4
jmp 0x478bb8
mov ecx, dword [ecx + 0x38]
jmp 0x478bf3
mov eax, dword [eax + 0x38]
jmp 0x478c0a
mov edx, dword [eax + 8]
mov eax, dword [edx + 0x38]
jmp 0x478c26
push eax
call 0x4b1765
mov dword [ebx + 0xc], 0
jmp 0x478c3f
mov ecx, dword [ebx]
test ecx, ecx
je 0x478c4b
push ecx
call dword [0x47d404]
mov ecx, dword [ebx]
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478c6f
mov eax, dword [ebx]
test eax, eax
je 0x478c6f
push eax
call 0x4af9de
jmp 0x478c6f
mov eax, ebx
call fcn.0047d400
jmp 0x478c6f
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push eax
call fcn.0047fcac
mov ecx, dword [ebx]
add esp, 4
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478c6f
mov eax, dword [ebx]
test eax, eax
je 0x478c6f
push eax
call 0x4b64a4
jmp 0x478c6f
dec eax
cmp eax, 0xb
ja 0x478c91
jmp dword [eax*4 + 0x42b33d]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0x38]
jmp 0x478ca6
mov eax, dword [0x4a2e18]
mov esi, dword [eax + 8]
push eax
call 0x4d90e4
mov ecx, esi
mov dword [0x4a2e18], ecx
mov byte [0x4a2e1d], 0
jmp 0x478cbd
mov ebx, dword [esp + 0x64]
mov byte [0x4a2e1d], 1
jmp 0x478dc7
push eax
mov ecx, ebx
call fcn.00479d20
jmp 0x478cf9
mov ecx, dword [edi]
push ecx
call fcn.0047fcac
mov edx, dword [edi + 0xc]
add esp, 4
push edx
call fcn.0047fcac
add esp, 4
jmp 0x478d1e
mov ecx, dword [ebx]
test ecx, ecx
je 0x478d3a
push ecx
call dword [0x47d404]
mov eax, dword [ebx]
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478d5e
mov eax, dword [ebx]
test eax, eax
je 0x478d5e
push eax
call 0x4af9de
jmp 0x478d5e
mov eax, ebx
call fcn.0047d400
jmp 0x478d5e
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push edx
call fcn.0047fcac
mov eax, dword [ebx]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478d5e
mov eax, dword [ebx]
test eax, eax
je 0x478d5e
push eax
call 0x4b64a4
jmp 0x478d5e
push eax
call 0x4b1765
mov dword [esp + 0xac], 0
jmp 0x478dec
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x478e20
push esi
call dword [0x47d404]
push esi
call fcn.0047fcac
add esp, 4
jmp 0x478e20
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x478e20
push eax
call 0x4af9de
jmp 0x478e20
lea eax, [esp + 0xa0]
call fcn.0047d400
jmp 0x478e20
mov esi, dword [esp + 0xa0]
mov edx, dword [esi + 4]
push edx
call fcn.0047fcac
add esp, 4
push esi
call fcn.0047fcac
add esp, 4
jmp 0x478e20
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x478e20
push eax
call 0x4b64a4
jmp 0x478e20
push eax
call 0x4b1765
mov dword [esp + 0x8c], 0
mov edx, 1
xor ecx, ecx
jmp 0x478e4b
cmp dword [esp + 0x80], ecx
je 0x478e78
mov esi, dword [esp + 0x80]
push esi
call dword [0x47d404]
push esi
call fcn.0047fcac
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x478e78
cmp dword [esp + 0x80], ecx
je 0x478e78
mov eax, dword [esp + 0x80]
push eax
call 0x4af9de
mov edx, 1
xor ecx, ecx
jmp 0x478e78
lea eax, [esp + 0x80]
call fcn.0047d400
mov edx, 1
xor ecx, ecx
jmp 0x478e78
mov esi, dword [esp + 0x80]
mov ecx, dword [esi + 4]
push ecx
call fcn.0047fcac
add esp, 4
push esi
call fcn.0047fcac
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x478e78
cmp dword [esp + 0x80], ecx
je 0x478e78
mov edx, dword [esp + 0x80]
push edx
call 0x4b64a4
mov edx, 1
xor ecx, ecx
jmp 0x478e78
push eax
call 0x4b1765
mov dword [esp + 0x2c], 0
mov edx, 1
xor ecx, ecx
jmp 0x478e84
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x478eb5
push eax
call dword [0x47d404]
mov eax, dword [esp + 0x20]
push eax
call fcn.0047fcac
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x478eb5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x478eb5
push eax
call 0x4af9de
mov edx, 1
xor ecx, ecx
jmp 0x478eb5
lea eax, [esp + 0x20]
call fcn.0047d400
mov edx, 1
xor ecx, ecx
jmp 0x478eb5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
push edx
call fcn.0047fcac
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
mov edx, 1
xor ecx, ecx
jmp 0x478eb5
mov eax, dword [esp + 0x20]
cmp eax, ecx
je 0x478eb5
push eax
call 0x4b64a4
mov edx, 1
xor ecx, ecx
jmp 0x478eb5
mov edx, dword [edi]
push edx
call fcn.0047fcac
mov eax, dword [edi + 0xc]
add esp, 4
push eax
call fcn.0047fcac
add esp, 4
jmp 0x478f13
mov ecx, dword [esi]
test ecx, ecx
je 0x478f2f
push ecx
call dword [0x47d404]
mov ecx, dword [esi]
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478f53
mov eax, dword [esi]
test eax, eax
je 0x478f53
push eax
call 0x4af9de
jmp 0x478f53
mov eax, esi
call fcn.0047d400
jmp 0x478f53
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call fcn.0047fcac
mov ecx, dword [esi]
add esp, 4
push ecx
call fcn.0047fcac
add esp, 4
jmp 0x478f53
mov eax, dword [esi]
test eax, eax
je 0x478f53
push eax
call 0x4b64a4
jmp 0x478f53
mov eax, dword [esp + 0x7c]
push eax
push 0x70
mov ecx, dword [ebp + 8]
push ecx
call 0x4c8bd8
lea esi, [esp + 0x20]
call fcn.00477860
lea ecx, [esp + 0x60]
call fcn.0049f9bb
lea ecx, [esp + 0x30]
call fcn.0047f5d0
mov eax, 1
jmp 0x478f7f