Function at 0x478a30
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x543b66
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14c
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0xc8]
xor esi, esi
cmp eax, esi
push edi
mov dword [esp + 0x28], ebx
jne 0x478a65
xor ebp, ebp
jmp 0x478a6b
mov ebp, dword [ebx + 0xc0]
mov eax, dword [ebx + 0xc8]
shr eax, 3
cmp ebp, esi
mov dword [esp + 0x18], eax
je 0x478aa7
mov ecx, dword [ebx + 0x78]
mov eax, dword [ebp]
push esi
push 1
push esi
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.004a5a10
push 1
push esi
push esi
mov ecx, ebx
call fcn.004a6440
mov dword [esp + 0x170], esi
jmp 0x478abf
cmp dword [esp + 0x174], 1
jne 0x478ab8
mov dword [esp + 0x170], esi
mov edx, dword [ebx + 0x74]
mov dword [esp + 0x1c], edx
mov eax, dword [ebx + 0x74]
lea ecx, [esp + 0x74]
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ebp
call fcn.005189bf
lea ecx, [esp + 0x4c]
mov dword [esp + 0x164], esi
call fcn.00473490
mov esi, 0x54d910
mov dword [esp + 0x4c], esi
lea ecx, [esp + 0x60]
mov byte [esp + 0x164], 1
call fcn.00473490
mov dword [esp + 0x60], esi
lea ecx, [esp + 0x8c]
mov byte [esp + 0x164], 2
call fcn.00473490
mov dword [esp + 0x8c], esi
push 0xa
push 0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x16c], 3
call fcn.00518a1f
mov eax, dword [ebx + 0x3c]
cmp eax, 6
je 0x47a51a
cmp eax, 7
je 0x47a51a
cmp eax, 8
je 0x47a51a
cmp eax, 1
je 0x479491
lea ecx, [esp + 0x44]
push 0
push ecx
lea edx, [esp + 0x48]
push 0
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0xb8]
push eax
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x50]
push ecx
push edx
push 0
push eax
mov ecx, ebx
call fcn.0047e860
mov edi, eax
test edi, edi
mov dword [esp + 0x34], edi
jne 0x478ba2
mov byte [esp + 0x164], 2
mov esi, 0x54d7d0
jmp 0x47a8e5
cmp dword [esp + 0x3c], 1
jne 0x478bb4
mov dword [esp + 0x170], 0
lea ecx, [esp + 0xac]
call fcn.00473490
mov dword [esp + 0xac], esi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x164], 6
test eax, eax
jle 0x478f29
mov dword [esp + 0x24], eax
jmp 0x478be5
mov ebp, dword [esp + 0x30]
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov eax, dword [ebx + 0x3c]
add ebp, 4
add ebp, 4
xor esi, esi
sub eax, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ebp
je 0x478e1f
dec eax
je 0x478d0c
dec eax
jne 0x478f16
or ebp, 0xffffffff
lea eax, [ebp + 1]
lea ecx, [esp + 0xcc]
mov ebp, eax
push ecx
mov ecx, dword [ebx + 0x48]
push eax
mov dword [esp + 0x24], ebp
call fcn.004d2d50
test eax, eax
je 0x478f16
mov eax, dword [esp + 0xcc]
test byte [eax + 8], 4
jne 0x478c18
mov ecx, dword [eax + 0x14]
lea eax, [esi + ecx + 7]
cmp edi, eax
mov dword [esp + 0x14], eax
jge 0x478cf3
mov eax, dword [esp + 0x10]
add ecx, 6
sub eax, esi
sub edi, esi
cmp ecx, eax
mov ebp, edi
mov esi, ecx
jl 0x478c6f
mov esi, eax
mov edi, dword [esp + 0x14]
cmp esi, ebp
jl 0x478cf3
cmp ebp, 6
jge 0x478c97
cmp esi, ecx
jne 0x478c97
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x48]
push edx
call fcn.004d2d90
push eax
lea ecx, [esp + 0xb0]
jmp 0x478cee
cmp ebp, 7
jge 0x478ca1
mov ebp, 7
cmp esi, 7
jl 0x478cf3
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x48]
push eax
call fcn.004d2d90
push eax
lea ecx, [esp + 0x90]
call fcn.00473750
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x7c]
lea eax, [ecx + 0x10]
lea ecx, [esp + 0x74]
push eax
push edx
call fcn.00518b9e
add ebp, 0xfffffff9
lea ecx, [esp + 0x4c]
push ebp
call fcn.00473750
add esi, 0xfffffff9
lea ecx, [esp + 0x60]
push esi
call fcn.00473750
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, esi
jl 0x478f16
mov ebp, dword [esp + 0x1c]
jmp 0x478c18
cmp edi, 1
jge 0x478d16
mov edi, 1
cmp ecx, edi
jl 0x478f16
mov ecx, dword [ebx + 0x44]
lea eax, [edi - 1]
push eax
call fcn.004d2460
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x478f16
mov eax, dword [esp + 0x10]
xor esi, esi
sub eax, edi
inc eax
test eax, eax
mov dword [esp + 0x1c], eax
jle 0x478e10
mov ebp, dword [esp + 0xa0]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebx + 0x44]
call fcn.004d24b0
test eax, eax
je 0x478dca
test esi, esi
je 0x478dab
mov eax, dword [esp + 0x18]
lea edi, [esi + ebp]
cmp eax, edi
jne 0x478d76
inc esi
jmp 0x478db4
push 0
lea ecx, [esp + 0x90]
call fcn.00473750
mov eax, dword [ebx + 0x44]
mov edx, dword [esp + 0x7c]
push eax
push edx
lea ecx, [esp + 0x7c]
call fcn.00518b9e
push ebp
lea ecx, [esp + 0x50]
call fcn.00473750
dec edi
lea ecx, [esp + 0x60]
push edi
call fcn.00473750
mov ebp, dword [esp + 0x18]
mov esi, 1
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc edi
dec eax
test eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
jg 0x478d53
test esi, esi
mov dword [esp + 0xa0], ebp
jle 0x478e10
push 0
lea ecx, [esp + 0x90]
call fcn.00473750
mov eax, dword [ebx + 0x44]
lea ecx, [esp + 0x74]
push eax
mov eax, dword [esp + 0x80]
push eax
call fcn.00518b9e
push ebp
lea ecx, [esp + 0x50]
call fcn.00473750
lea ecx, [esi + ebp - 1]
push ecx
lea ecx, [esp + 0x64]
call fcn.00473750
mov ecx, 0x599ae0
call fcn.00457ea0
jmp 0x478f16
or ebp, 0xffffffff
jmp 0x478e28
mov ebp, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x40]
lea eax, [ebp + 1]
lea edx, [esp + 0x88]
mov ebp, eax
push edx
push eax
mov dword [esp + 0x24], ebp
call fcn.004d2d50
test eax, eax
je 0x478f16
mov eax, dword [esp + 0x88]
test byte [eax + 8], 2
jne 0x478e28
mov ecx, dword [eax + 0x10]
lea eax, [esi + ecx + 3]
cmp edi, eax
mov dword [esp + 0x14], eax
jge 0x478f06
mov eax, dword [esp + 0x10]
add ecx, 2
sub eax, esi
sub edi, esi
cmp ecx, eax
mov ebp, edi
mov esi, ecx
jl 0x478e7f
mov esi, eax
mov edi, dword [esp + 0x14]
cmp esi, ebp
jl 0x478f06
cmp ebp, 2
jge 0x478ea7
cmp esi, ecx
jne 0x478ea7
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x40]
push eax
call fcn.004d2d90
push eax
lea ecx, [esp + 0xb0]
jmp 0x478f01
cmp ebp, 3
jge 0x478eb1
mov ebp, 3
cmp esi, 3
jl 0x478f06
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0x40]
call fcn.004d2d90
push eax
lea ecx, [esp + 0x90]
call fcn.00473750
mov edx, dword [esp + 0x88]
lea ecx, [esp + 0x74]
lea eax, [edx + 0xc]
push eax
mov eax, dword [esp + 0x80]
push eax
call fcn.00518b9e
add ebp, 0xfffffffd
lea ecx, [esp + 0x4c]
push ebp
call fcn.00473750
add esi, 0xfffffffd
lea ecx, [esp + 0x60]
push esi
call fcn.00473750
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, esi
jge 0x478e24
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x478be1
mov edi, dword [esp + 0x34]
push 0
push 1
push 0
mov ecx, ebx
call fcn.004a69c0
mov ebp, dword [esp + 0xbc]
shr ebp, 2
dec ebp
js 0x478f4d
mov ecx, 0x599ae0
call fcn.00457ea0
xor esi, esi
test ebp, ebp
jl 0x478fb2
mov ecx, dword [esp + 0xb4]
mov edx, dword [ebx + 0x3c]
mov eax, dword [ecx + esi*4]
mov ecx, 0x599ae0
mov dword [esp + 0x48], eax
push eax
mov eax, dword [ebx + 0x5c]
push edx
push eax
call fcn.004ea220
mov eax, dword [ebx + 0x3c]
sub eax, 2
je 0x478f98
sub eax, 2
jne 0x478fad
mov ecx, dword [esp + 0x48]
push 1
push ecx
mov ecx, dword [ebx + 0x5c]
add ecx, 0x228
call fcn.004c8f10
jmp 0x478fad
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx + 0x5c]
push 1
push edx
add ecx, 0x1b4
call fcn.004c8d20
inc esi
cmp esi, ebp
jle 0x478f53
mov eax, dword [esp + 0x7c]
lea esi, [eax - 1]
test esi, esi
jl 0x479011
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
push 0
mov eax, dword [ecx + esi*4]
mov ecx, dword [edx + esi*4]
mov edx, dword [esp + 0x98]
sub ecx, eax
inc ecx
push ecx
mov ecx, dword [esp + 0x80]
push eax
mov eax, dword [edx + esi*4]
mov edx, dword [ecx + esi*4]
push eax
push edx
mov ecx, 0x599ae0
call fcn.004ea3a0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + esi*4]
mov eax, dword [edx + esi*4]
push ecx
mov ecx, dword [esp + 0x7c]
push eax
mov ecx, dword [ecx + esi*4]
call fcn.004c5cf0
dec esi
jns 0x478fbd
mov esi, dword [esp + 0x16c]
test esi, esi
jne 0x479027
push 1
push 1
mov ecx, ebx
jmp 0x47946c
lea eax, [edi - 1]
cmp eax, 6
ja case.default.0x47902f
jmp dword [eax*4 + 0x47a954]
mov edx, dword [esp + 0xa8]
mov edi, 0x40000000
lea ebp, [edx + 0x10]
mov dword [esp + 0x14], ebp
jmp 0x479081
mov eax, dword [esp + 0xa8]
mov edi, 0x30000000
lea ebp, [eax + 0xc]
mov dword [esp + 0x14], ebp
jmp 0x479081
mov eax, dword [esi + 0x1d4]
mov ebp, dword [esp + 0xa8]
xor edi, edi
mov dword [esp + 0x14], ebp
test eax, eax
jle 0x479081
mov ecx, 0x599ae0
call fcn.00457ea0
test ebp, ebp
jne 0x479090
push 1
push 1
mov ecx, ebx
jmp 0x47946c
mov ecx, dword [esp + 0x34]
mov edx, dword [ebx + 0x5c]
push 0
push 0
push 0
push ebp
push 0
push edi
push ecx
push edx
mov ecx, esi
call fcn.00452fc0
mov eax, dword [esi + 0x1cc]
shr eax, 3
mov edi, eax
mov eax, dword [esi + 0x240]
shr eax, 3
mov ebp, eax
mov eax, dword [esi + 0x1d4]
test edi, edi
mov dword [esp + 0x1c], eax
jg 0x4790df
test ebp, ebp
jg 0x4790df
mov eax, dword [esi + 0x25c]
shr eax, 3
test eax, eax
jle 0x4790e9
mov ecx, 0x599ae0
call fcn.00457ea0
mov eax, dword [ebx + 0x3c]
sub eax, 2
je 0x479155
dec eax
je 0x47919b
dec eax
jne 0x4791a9
test ebp, ebp
jle 0x479145
mov ecx, dword [esp + 0x40]
lea edi, [esi + 0x228]
push ebp
push 0
push edi
push ecx
push 0x12e
mov ecx, 0x599ae0
call fcn.004eb130
mov edx, dword [esp + 0x40]
mov ecx, dword [ebx + 0x5c]
push ebp
push 0
push edi
push edx
add ecx, 0x228
call fcn.004d2ed0
lea ecx, [esi + 0x230]
call fcn.00473690
jmp 0x4791a9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x4791a9
test edi, edi
jle 0x47919b
mov edx, dword [esp + 0x40]
lea ebp, [esi + 0x1b4]
push edi
push 0
push ebp
push edx
push 0x12d
mov ecx, 0x599ae0
call fcn.004eb130
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx + 0x5c]
push edi
push 0
push ebp
push eax
add ecx, 0x1b4
call fcn.004d2ed0
lea ecx, [esi + 0x1bc]
call fcn.00473690
jmp 0x4791a9
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x1cc]
mov edx, dword [ebx + 0x5c]
shr eax, 3
mov ecx, dword [edx + 0x1cc]
lea edi, [esi + 0x1b4]
push eax
push 0
shr ecx, 3
push edi
push ecx
push 0x12d
mov ecx, 0x599ae0
call fcn.004eb130
mov ecx, dword [ebx + 0x5c]
push edi
add ecx, 0x1b4
call fcn.004d2f90
lea ecx, [esi + 0x1bc]
call fcn.00473690
mov eax, dword [esi + 0x240]
mov ecx, dword [ebx + 0x5c]
shr eax, 3
mov ecx, dword [ecx + 0x240]
lea edi, [esi + 0x228]
push eax
push 0
shr ecx, 3
push edi
push ecx
push 0x12e
mov ecx, 0x599ae0
call fcn.004eb130
mov ecx, dword [ebx + 0x5c]
push edi
add ecx, 0x228
call fcn.004d2f90
lea ecx, [esi + 0x230]
call fcn.00473690
mov eax, dword [esi + 0x25c]
mov edx, dword [ebx + 0x5c]
shr eax, 3
mov ecx, dword [edx + 0x25c]
lea edi, [esi + 0x244]
push eax
push 0
shr ecx, 3
push edi
push ecx
push 0x12f
mov ecx, 0x599ae0
call fcn.004eb130
mov ecx, dword [ebx + 0x5c]
push edi
add ecx, 0x244
call fcn.004d2f90
lea ecx, [esi + 0x24c]
call fcn.00473690
mov ecx, dword [ebx + 0x5c]
lea eax, [esi + 0x280]
push eax
add ecx, 0x280
call fcn.004cfcc0
mov ecx, dword [esp + 0x170]
mov eax, 1
cmp ecx, eax
jne 0x4792ad
inc dword [esp + 0x38]
cmp dword [esp + 0x174], eax
jne 0x4793ef
cmp dword [esp + 0x34], 7
jne 0x4793cd
lea ecx, [esp + 0x4c]
call fcn.00473690
lea ecx, [esp + 0x60]
call fcn.00473690
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004d2460
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
je 0x4793c0
mov eax, dword [esi + 0x1d4]
xor edi, edi
test eax, eax
mov dword [esp + 0x24], eax
jle 0x47937d
mov ebp, dword [esp + 0xa4]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x30]
push edx
call fcn.004d24b0
test eax, eax
je 0x479361
test edi, edi
je 0x479342
mov eax, dword [esp + 0x30]
lea ebx, [edi + ebp]
cmp eax, ebx
jne 0x47932d
inc edi
jmp 0x47934b
push ebp
lea ecx, [esp + 0x50]
call fcn.00473750
dec ebx
lea ecx, [esp + 0x60]
push ebx
call fcn.00473750
mov ebp, dword [esp + 0x30]
mov edi, 1
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
inc ebx
dec eax
test eax, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], eax
jg 0x479309
test edi, edi
jle 0x47937d
push ebp
lea ecx, [esp + 0x50]
call fcn.00473750
lea eax, [edi + ebp - 1]
lea ecx, [esp + 0x60]
push eax
call fcn.00473750
mov ebp, dword [esp + 0x5c]
shr ebp, 2
dec ebp
js 0x4793c0
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
push 0
mov ebx, dword [edx + ebp*4]
mov edi, dword [ecx + ebp*4]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov eax, ebx
sub eax, edi
inc eax
push eax
push edi
push ecx
push edx
mov ecx, 0x599ae0
call fcn.004ea3a0
mov ecx, dword [esp + 0x14]
push ebx
push edi
call fcn.004c5cf0
dec ebp
jns 0x479387
mov dword [esp + 0x174], 0
jmp 0x4793ef
mov eax, dword [esi + 0x1d4]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x40]
push eax
push ecx
push edx
mov ecx, 0x599ae0
call fcn.004ea3a0
mov eax, dword [esi + 0x1d4]
mov ecx, dword [esp + 0x44]
push 0
add esi, 0x1d0
push eax
mov eax, dword [esp + 0x40]
push 0
push esi
push eax
push ecx
mov ecx, 0x599ae0
call fcn.004eb240
mov edi, dword [esp + 0x174]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
xor edx, edx
test edi, edi
sete dl
push edx
push esi
push eax
call fcn.004c7e40
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp eax, dword [esi + 0x74]
je 0x479466
test edi, edi
jne 0x479466
cmp dword [esp + 0x170], 1
jne 0x479466
push edi
push 1
push edi
push edi
push eax
mov ecx, esi
call fcn.004a5a10
push 1
push edi
push edi
mov ecx, esi
call fcn.004a6440
push 1
push 1
mov ecx, esi
call fcn.004a98d0
mov esi, 0x54d7d0
mov byte [esp + 0x164], 3
mov dword [esp + 0xac], esi
lea ecx, [esp + 0xac]
jmp 0x47a8d8
mov ecx, dword [ebx + 0x54]
push ecx
mov ecx, dword [ebx + 0x5c]
add ecx, 0x20c
call fcn.004d2d00
mov edx, dword [ebx + 0x5c]
lea ecx, [esp + 0x10c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edx
call fcn.00473490
mov dword [esp + 0x10c], esi
lea ecx, [esp + 0xe4]
mov byte [esp + 0x164], 7
call fcn.00518d43
push 0xa
push 0
lea ecx, [esp + 0xec]
mov byte [esp + 0x16c], 8
call fcn.00518da3
lea ecx, [esp + 0xd0]
call fcn.005189bf
lea ecx, [esp + 0xf8]
mov byte [esp + 0x164], 9
call fcn.00473490
mov dword [esp + 0xf8], esi
lea ecx, [esp + 0x120]
mov byte [esp + 0x164], 0xa
call fcn.00473490
mov dword [esp + 0x120], esi
lea ecx, [esp + 0x148]
mov byte [esp + 0x164], 0xb
call fcn.00473490
mov dword [esp + 0x148], esi
push 0xa
push 0
lea ecx, [esp + 0xd8]
mov byte [esp + 0x16c], 0xc
call fcn.00518a1f
mov ecx, dword [ebx + 0x54]
mov eax, dword [ecx + 0x3c]
shr eax, 2
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x479580
mov dword [esp + 0x14], 0
jmp 0x479587
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x14], eax
call fcn.004cec90
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4799d3
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
jmp 0x4795b1
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add eax, 4
mov edx, dword [esp + 0x44]
add eax, 4
xor edi, edi
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x58]
test eax, eax
mov dword [esp + 0x10], ecx
jne 0x47965f
cmp esi, edx
jge 0x479655
cmp esi, 3
jge 0x4795e3
mov esi, 3
lea eax, [edx - 1]
lea ebp, [esi - 3]
cmp eax, ecx
mov edi, eax
jl 0x4795f1
mov edi, ecx
add edi, 0xfffffffd
mov esi, edx
cmp edi, ebp
jl 0x479655
mov ecx, dword [esp + 0x38]
push ecx
lea ecx, [esp + 0x90]
call fcn.00473750
mov edx, dword [esp + 0xec]
push 0
push edx
lea ecx, [esp + 0xec]
call fcn.00518eb6
mov eax, dword [ebx + 0x54]
lea ecx, [esp + 0x74]
add eax, 0xc
push eax
mov eax, dword [esp + 0x80]
push eax
call fcn.00518b9e
push ebp
lea ecx, [esp + 0x50]
call fcn.00473750
push edi
lea ecx, [esp + 0x64]
call fcn.00473750
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
cmp ecx, edx
mov edi, edx
jl 0x4799ba
mov eax, dword [esp + 0x34]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x4799ba
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x2c]
push 0
mov edx, dword [ebp + ebx*4]
push ecx
lea ecx, [eax + 0x1f0]
push edx
mov dword [esp + 0x48], ecx
call fcn.004d2df0
mov ecx, dword [esp + 0x2c]
test byte [ecx + 0xc], 0x10
je 0x479762
add edi, 2
cmp esi, edi
jge 0x4796d5
mov eax, dword [esp + 0x10]
lea edx, [edi - 2]
cmp eax, edx
jl 0x4796d5
mov eax, dword [ebp + ebx*4]
lea ecx, [esp + 0x10c]
push eax
call fcn.00473750
mov ecx, dword [esp + 0x2c]
mov esi, edi
mov dword [esp + 0x24], 1
jmp 0x4796dd
mov dword [esp + 0x24], 0
test byte [ecx + 0xc], 0x20
jne 0x479753
mov eax, dword [esp + 0x34]
inc ebx
cmp ebx, eax
mov dword [esp + 0x18], 0
jge 0x479753
mov eax, dword [esp + 0x14]
lea ebp, [eax + ebx*4]
mov edx, dword [ebp]
lea ecx, [esp + 0x2c]
push 0
push ecx
mov ecx, dword [esp + 0x44]
push edx
call fcn.004d2df0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x479727
mov eax, dword [ebp]
lea ecx, [esp + 0x10c]
push eax
call fcn.00473750
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test al, 0x10
je 0x479736
inc dword [esp + 0x18]
test al, 0x20
je 0x479747
mov eax, dword [esp + 0x18]
test eax, eax
je 0x479753
dec eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
inc ebx
add ebp, 4
cmp ebx, eax
jl 0x4796fb
cmp dword [esp + 0x10], esi
jl 0x4799ba
jmp 0x4799a9
call fcn.004cdd40
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 0x18]
test ebx, ebx
jle 0x479773
inc ebx
mov ebp, dword [ecx + 0x64]
lea ecx, [edi + 2]
shr ebp, 2
mov dword [esp + 0x24], ebp
add ebp, ebx
add ebp, eax
cmp esi, ecx
jge 0x479794
mov ecx, dword [esp + 0x10]
lea edx, [edi + ebp - 1]
cmp ecx, edx
jge 0x4797ac
mov ecx, dword [esp + 0x16c]
test ecx, ecx
jne 0x4797d9
lea ecx, [edi + 1]
cmp esi, ecx
jg 0x4797d9
cmp dword [esp + 0x10], ecx
jl 0x4797d9
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x10c]
push eax
call fcn.00473750
mov eax, dword [esp + 0x10]
add edi, ebp
cmp eax, edi
mov esi, edi
jl 0x4799ba
jmp 0x4799a5
lea edx, [eax + edi]
cmp esi, edx
mov dword [esp + 0x3c], edx
jge 0x479875
mov ecx, dword [esp + 0x10]
sub esi, edi
sub ecx, edi
lea edi, [eax - 1]
cmp edi, ecx
mov ebp, esi
jl 0x4797fb
mov edi, ecx
cmp edi, ebp
mov esi, edx
jl 0x479875
cmp ebp, 3
jge 0x47980b
mov ebp, 3
cmp edi, 3
jl 0x479875
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x8c]
mov eax, dword [edx + eax*4]
push eax
call fcn.00473750
mov ecx, dword [esp + 0xec]
push 1
push ecx
lea ecx, [esp + 0xec]
call fcn.00518eb6
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x74]
lea eax, [edx + 0x34]
push eax
mov eax, dword [esp + 0x80]
push eax
call fcn.00518b9e
add ebp, 0xfffffffd
lea ecx, [esp + 0x4c]
push ebp
call fcn.00473750
add edi, 0xfffffffd
lea ecx, [esp + 0x60]
push edi
call fcn.00473750
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov eax, edx
cmp ecx, eax
jl 0x4799ba
test ebx, ebx
jle 0x47992a
lea edx, [ebx + eax]
cmp esi, edx
mov dword [esp + 0x3c], edx
jge 0x47991c
sub ecx, eax
lea ebp, [ebx - 1]
sub esi, eax
cmp ebp, ecx
mov edi, esi
jl 0x4798a9
mov ebp, ecx
cmp ebp, edi
mov esi, edx
jl 0x47991c
cmp edi, 1
jge 0x4798b9
mov edi, 1
cmp ebp, 1
jl 0x47991c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + edx*4]
lea ecx, [esp + 0x8c]
push eax
call fcn.00473750
mov eax, dword [esp + 0xec]
push 0
push eax
lea ecx, [esp + 0xec]
call fcn.00518eb6
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x7c]
lea eax, [ecx + 0x14]
lea ecx, [esp + 0x74]
push eax
push edx
call fcn.00518b9e
dec edi
lea ecx, [esp + 0x4c]
push edi
call fcn.00473750
dec ebp
lea ecx, [esp + 0x60]
push ebp
call fcn.00473750
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov eax, edx
cmp ecx, eax
jl 0x4799ba
mov edx, dword [esp + 0x24]
lea ebx, [edx + eax]
cmp esi, ebx
jge 0x47999b
mov ecx, dword [esp + 0x10]
sub esi, eax
sub ecx, eax
lea eax, [edx - 1]
cmp eax, ecx
mov ebp, esi
mov edi, eax
jl 0x47994a
mov edi, ecx
cmp edi, ebp
mov esi, ebx
jl 0x47999b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xd8]
push eax
push ecx
lea ecx, [esp + 0xd8]
call fcn.00518b9e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x148]
mov eax, dword [edx + eax*4]
push eax
call fcn.00473750
push ebp
lea ecx, [esp + 0xfc]
call fcn.00473750
push edi
lea ecx, [esp + 0x124]
call fcn.00473750
mov eax, dword [esp + 0x10]
mov edi, ebx
cmp eax, edi
jl 0x4799ba
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
inc ebx
cmp ebx, eax
mov dword [esp + 0x18], ebx
jl 0x479671
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
jne 0x4795a9
mov ebx, dword [esp + 0x28]
push 0
push 1
push 0
mov ecx, ebx
call fcn.004a69c0
mov ebp, dword [esp + 0x11c]
shr ebp, 2
dec ebp
js 0x4799f7
mov ecx, 0x599ae0
call fcn.00457ea0
xor edi, edi
test ebp, ebp
jl 0x479a8c
mov ecx, dword [esp + 0x114]
mov eax, dword [ebx + 0x54]
add eax, 0x2c
mov edx, dword [ecx + edi*4]
mov dword [esp + 0x48], edx
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x479a23
mov eax, dword [eax + 8]
test eax, eax
jne 0x479a28
or esi, 0xffffffff
jmp 0x479a52
shr ecx, 2
push edx
push ecx
push eax
call fcn.004744a0
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x479a52
mov ecx, dword [ebx + 0x54]
lea edx, [esi*4]
push 4
push edx
add ecx, 0x2c
call fcn.00473ed0
xor eax, eax
mov ecx, dword [esp + 0x48]
test esi, esi
setl al
dec eax
and eax, esi
mov esi, dword [esp + 0x40]
push eax
push ecx
push esi
mov ecx, 0x599ae0
call fcn.004eae90
mov edx, dword [esp + 0x48]
push 1
push edx
lea ecx, [esi + 0x1f0]
call fcn.004c89c0
inc edi
cmp edi, ebp
jle 0x479a01
push 0
lea ecx, [esp + 0x110]
call fcn.00474270
mov eax, dword [esp + 0x7c]
lea esi, [eax - 1]
test esi, esi
jl 0x479b08
mov ecx, dword [esp + 0x54]
xor edx, edx
mov eax, dword [ecx + esi*4]
mov ecx, dword [esp + 0xe8]
cmp word [ecx + esi*2], dx
setne dl
push edx
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + esi*4]
mov edx, dword [esp + 0x98]
sub ecx, eax
inc ecx
push ecx
mov ecx, dword [esp + 0x80]
push eax
mov eax, dword [edx + esi*4]
mov edx, dword [ecx + esi*4]
push eax
push edx
mov ecx, 0x599ae0
call fcn.004ea3a0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + esi*4]
mov eax, dword [edx + esi*4]
push ecx
mov ecx, dword [esp + 0x7c]
push eax
mov ecx, dword [ecx + esi*4]
call fcn.004c5cf0
dec esi
jns 0x479aa5
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x7c]
call fcn.00518a1f
push 0
lea ecx, [esp + 0x50]
call fcn.00474270
push 0
lea ecx, [esp + 0x64]
call fcn.00474270
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0xec]
call fcn.00518da3
push 0
lea ecx, [esp + 0x90]
call fcn.00474270
mov eax, dword [esp + 0x16c]
mov edx, dword [esp + 0xd8]
test eax, eax
mov dword [esp + 0x3c], edx
je 0x47a40e
lea eax, [esp + 0x18]
push 0
push eax
lea ecx, [esp + 0x1c]
push 0
lea edx, [esp + 0x40]
push ecx
lea eax, [esp + 0x20]
push edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xb4]
push eax
push ecx
push 0
push edx
mov ecx, ebx
call fcn.0047e860
mov ebp, eax
test ebp, ebp
je 0x47a40e
push ebp
mov ecx, ebx
call fcn.004a3f80
test eax, eax
je 0x479bc2
mov eax, dword [esp + 0x10]
test byte [eax + 0xc], 0x10
je 0x479bc2
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebx + 0x54]
call fcn.004ceb80
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
inc ecx
cmp eax, 1
mov dword [esp + 0x14], ecx
jne 0x479be2
mov dword [esp + 0x170], 0
lea edi, [ebp - 8]
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
xor esi, esi
cmp edi, 5
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
ja case.default.0x479bfb
jmp dword [edi*4 + 0x47a970]
mov eax, dword [ebx + 0x54]
mov ecx, 0x10000000
mov dword [esp + 0x28], ecx
add eax, 0xc
jmp case.default.0x479bfb
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 0x54]
mov ecx, 0x20000000
add eax, 0xc
lea edx, [esi + 0x34]
mov dword [esp + 0x28], ecx
add esi, 0x14
push 0
mov edi, dword [esp + 0x170]
push esi
push edx
mov edx, dword [ebx + 0x54]
push eax
push edx
push ecx
push ebp
mov ebp, dword [esp + 0x5c]
push ebp
mov ecx, edi
call fcn.00452fc0
mov eax, dword [edi + 0x1cc]
shr eax, 3
test eax, eax
jg 0x479c7e
mov eax, dword [edi + 0x240]
shr eax, 3
test eax, eax
jg 0x479c7e
mov eax, dword [edi + 0x25c]
shr eax, 3
test eax, eax
jg 0x479c7e
mov eax, dword [edi + 0x208]
shr eax, 3
test eax, eax
jle 0x479c88
mov ecx, 0x599ae0
call fcn.00457ea0
mov eax, dword [edi + 0x1cc]
mov ecx, dword [ebp + 0x1cc]
shr eax, 3
lea esi, [edi + 0x1b4]
push eax
push 0
push esi
shr ecx, 3
push ecx
push 0x12d
mov ecx, 0x599ae0
call fcn.004eb130
push esi
lea ecx, [ebp + 0x1b4]
call fcn.004d2f90
lea ecx, [edi + 0x1bc]
call fcn.00473690
mov eax, dword [edi + 0x240]
mov ecx, dword [ebp + 0x240]
shr eax, 3
lea esi, [edi + 0x228]
push eax
push 0
push esi
shr ecx, 3
push ecx
push 0x12e
mov ecx, 0x599ae0
call fcn.004eb130
push esi
lea ecx, [ebp + 0x228]
call fcn.004d2f90
lea ecx, [edi + 0x230]
call fcn.00473690
mov eax, dword [edi + 0x25c]
mov ecx, dword [ebp + 0x25c]
shr eax, 3
lea esi, [edi + 0x244]
push eax
push 0
push esi
shr ecx, 3
push ecx
push 0x12f
mov ecx, 0x599ae0
call fcn.004eb130
push esi
lea ecx, [ebp + 0x244]
call fcn.004d2f90
lea ecx, [edi + 0x24c]
call fcn.00473690
mov eax, dword [edi + 0x264]
mov ecx, dword [ebp + 0x264]
lea esi, [edi + 0x260]
push eax
push 0
push esi
push ecx
push 0x133
mov ecx, 0x599ae0
call fcn.004eb380
push esi
lea ecx, [ebp + 0x260]
call fcn.004c6400
lea eax, [edi + 0x280]
lea ecx, [ebp + 0x280]
push eax
call fcn.004cfcc0
lea ecx, [esp + 0xa4]
add edi, 0x1f0
push ecx
mov ecx, edi
call fcn.004d2dc0
mov esi, eax
test esi, esi
jle 0x479db8
mov dword [esp + 0x20], 0xffffffff
xor ebp, ebp
test esi, esi
jle 0x479ded
lea edx, [esp + 0x2c]
mov ecx, edi
push edx
push ebp
call fcn.004d2d50
mov eax, dword [esp + 0x178]
test eax, eax
mov eax, dword [esp + 0x2c]
je 0x479de1
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x479de8
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
inc ebp
cmp ebp, esi
jl 0x479dbe
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
push esi
push 0
mov eax, dword [ebp + 0x208]
push edi
shr eax, 3
push eax
mov eax, dword [esp + 0x48]
push edx
push eax
mov ecx, 0x599ae0
call fcn.004e9fb0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
lea ecx, [esi*4]
push ecx
lea ecx, [eax*4]
push edx
push ecx
mov ecx, dword [ebx + 0x54]
add ecx, 0x2c
call fcn.00473cb0
add ebp, 0x1f0
push edi
mov ecx, ebp
call fcn.004d2f90
mov edx, dword [esp + 0x14]
add edx, esi
mov esi, dword [esp + 0x16c]
mov dword [esp + 0x14], edx
lea ecx, [esi + 0x1f8]
call fcn.00473690
mov eax, dword [esi + 0x1d4]
test eax, eax
jle 0x479e76
mov dword [esp + 0x20], 0xffffffff
mov ecx, dword [esp + 0x24]
cmp ecx, 5
ja case.default.0x479e85
mov edx, ecx
jmp dword [edx*4 + 0x47a988]
xor esi, esi
jmp 0x479e97
mov esi, dword [esp + 0x170]
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp esi, 1
sete cl
add ecx, edx
mov edi, ecx
mov ecx, dword [esp + 0x174]
cmp ecx, 1
jne 0x479ecd
mov edx, dword [esp + 0x38]
push 0
push eax
mov eax, dword [ebx + 0x54]
push edi
add eax, 0xc
push edx
push eax
mov ecx, 0x599ae0
call fcn.004ea3a0
mov esi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x38]
push 0
mov eax, dword [esi + 0x1d4]
add esi, 0x1d0
push eax
push 0
push esi
push edi
push ecx
mov ecx, 0x599ae0
call fcn.004eb240
mov ecx, dword [esp + 0x174]
xor edx, edx
test ecx, ecx
mov ecx, dword [ebx + 0x54]
sete dl
push edx
push esi
push edi
add ecx, 0xc
call fcn.004c7e40
mov dword [esp + 0x170], 0
jmp case.default.0x479e85
xor esi, esi
jmp 0x479f2d
mov esi, dword [esp + 0x170]
mov edx, dword [esp + 0x34]
xor ecx, ecx
cmp esi, 1
sete cl
add ecx, edx
mov edi, ecx
mov ecx, dword [esp + 0x174]
cmp ecx, 1
jne 0x479f64
mov edx, dword [esp + 0x18]
push 1
push eax
mov eax, dword [esp + 0x18]
push edi
add eax, 0x34
push edx
push eax
mov ecx, 0x599ae0
call fcn.004ea3a0
mov esi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x18]
push 1
mov eax, dword [esi + 0x1d4]
add esi, 0x1d0
push eax
push 0
push esi
push edi
push ecx
mov ecx, 0x599ae0
call fcn.004eb240
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x10]
xor edx, edx
test ecx, ecx
sete dl
push edx
push esi
push edi
lea ecx, [eax + 0x34]
call fcn.004c7e40
mov dword [esp + 0x170], 0
jmp case.default.0x479e85
mov edi, dword [esp + 0x170]
mov edx, dword [esp + 0x34]
mov esi, 1
xor ecx, ecx
cmp edi, esi
sete cl
add ecx, edx
mov edi, ecx
mov ecx, dword [esp + 0x174]
cmp ecx, esi
jne 0x479ffb
mov edx, dword [esp + 0x18]
push 0
push eax
mov eax, dword [esp + 0x18]
push edi
add eax, 0x14
push edx
push eax
mov ecx, 0x599ae0
call fcn.004ea3a0
mov esi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x18]
push 0
mov eax, dword [esi + 0x1d4]
add esi, 0x1d0
push eax
push 0
push esi
push edi
push ecx
mov ecx, 0x599ae0
call fcn.004eb240
mov ecx, dword [esp + 0x174]
mov eax, dword [esp + 0x10]
xor edx, edx
test ecx, ecx
sete dl
push edx
push esi
push edi
lea ecx, [eax + 0x14]
call fcn.004c7e40
mov dword [esp + 0x170], 0
jmp case.default.0x479e85
mov edx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x10]
push 0
push eax
mov esi, dword [ecx + 0x18]
mov eax, dword [esp + 0x20]
lea edi, [edx + 0x1d0]
push 0
push edi
push esi
push eax
mov ecx, 0x599ae0
call fcn.004eb240
mov eax, dword [esp + 0x174]
mov edx, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
sete cl
push ecx
push edi
push esi
lea ecx, [edx + 0x14]
call fcn.004c7e40
cmp dword [esp + 0x28], 0x10000000
jne 0x47a1a7
mov eax, dword [esp + 0x16c]
mov ecx, dword [0x596a0c]
mov dword [esp + 0x28], ecx
mov edi, dword [eax + 0x188]
dec edi
mov byte [esp + 0x164], 0xd
js 0x47a0cf
mov ecx, 0x599ae0
call fcn.00457ea0
xor esi, esi
test edi, edi
jl 0x47a17b
mov edx, dword [esp + 0x16c]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + 0x184]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x2c], eax
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0xc]
and edx, 0xfffffffc
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
lea edx, [esp + 0x28]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.004c84b0
test eax, eax
je 0x47a127
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x28]
push eax
call fcn.00519a63
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp]
push 0
push eax
mov ecx, ebp
call dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
push eax
push ecx
push edx
mov ecx, 0x599ae0
mov dword [esp + 0x54], eax
call fcn.004ea0f0
mov eax, dword [esp + 0x14]
push 4
lea ecx, [eax*4]
inc eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, dword [ebx + 0x54]
add ecx, 0x2c
call fcn.00473cb0
inc esi
cmp esi, edi
jle 0x47a0d9
mov ecx, dword [esp + 0x16c]
push 0xffffffffffffffff
push 0
add ecx, 0x180
call fcn.00518a1f
lea ecx, [esp + 0x28]
mov byte [esp + 0x164], 0xc
call fcn.00519976
jmp 0x47a40e
mov esi, dword [esp + 0x3c]
test esi, esi
jle 0x47a1d8
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0x100]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x150]
mov edx, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], ecx
jmp 0x47a1f3
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], ecx
mov eax, dword [edx + 0x64]
shr eax, 2
cmp ecx, eax
jl 0x47a1f3
dec eax
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x134]
call fcn.00473490
lea edi, [esi - 1]
mov byte [esp + 0x164], 0xe
test edi, edi
jl 0x47a2cb
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x174]
lea esi, [edi*4]
mov ecx, dword [esp + 0xd4]
cmp dword [ecx + esi], eax
jne 0x47a2bd
test ebp, ebp
jne 0x47a28c
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x47a243
xor eax, eax
jmp 0x47a246
mov eax, dword [eax + 0x5c]
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + esi]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x134]
push eax
call fcn.00473750
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x47a26f
xor eax, eax
jmp 0x47a272
mov eax, dword [eax + 0x5c]
mov edx, dword [esp + 0x128]
mov ecx, dword [edx + esi]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x134]
push eax
call fcn.00473750
push 1
push edi
lea ecx, [esp + 0xd8]
call fcn.00518cb7
push 4
push esi
lea ecx, [esp + 0x100]
call fcn.00473ed0
push 4
push esi
lea ecx, [esp + 0x128]
call fcn.00473ed0
mov eax, dword [esp + 0x10]
dec edi
sub esi, 4
test edi, edi
jge 0x47a224
jmp 0x47a2d6
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x174]
mov ecx, dword [esp + 0x16c]
lea edx, [esp + 0x134]
push ebp
push edx
mov edx, dword [esp + 0x178]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x28]
push ecx
push eax
push edx
call fcn.00482230
mov ecx, dword [esp + 0x3c]
add esp, 0x1c
cmp ecx, 0xffffffff
je 0x47a311
add ecx, eax
mov dword [esp + 0x20], ecx
test ebp, ebp
jne 0x47a3ef
mov eax, dword [esp + 0x144]
mov edi, dword [esp + 0x13c]
mov esi, eax
neg esi
sbb esi, esi
shr eax, 3
and esi, edi
test eax, eax
jle 0x47a3ef
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
add esi, 4
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x47a352
xor ecx, ecx
jmp 0x47a355
mov ecx, dword [eax + 0x5c]
mov eax, dword [eax + 0x64]
push edx
shr eax, 2
push eax
push ecx
call fcn.004742c0
mov ecx, dword [esi]
mov edi, eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
add esi, 4
mov edx, dword [eax + 0x64]
test edx, edx
jne 0x47a37c
xor edx, edx
jmp 0x47a37f
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, dword [eax + 0x64]
shr ecx, 2
push ecx
push edx
call fcn.004742c0
add esp, 0xc
cmp edi, 0xffffffff
mov ebp, eax
je 0x47a3e0
cmp ebp, 0xffffffff
je 0x47a3e0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xd8]
push edx
push eax
lea ecx, [esp + 0xd8]
call fcn.00518b9e
mov ecx, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x14c]
call fcn.00473750
push edi
lea ecx, [esp + 0xfc]
call fcn.00473750
push ebp
lea ecx, [esp + 0x124]
call fcn.00473750
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x47a33e
lea ecx, [esp + 0x134]
mov byte [esp + 0x164], 0xc
mov dword [esp + 0x134], 0x54d7d0
call fcn.00473690
lea edx, [esp + 0x120]
lea eax, [esp + 0xf8]
push edx
lea ecx, [esp + 0xd4]
push eax
lea edx, [esp + 0x150]
push ecx
push edx
call fcn.00483780
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, 0xffffffff
je 0x47a476
cmp eax, dword [ebx + 0x74]
je 0x47a476
mov ecx, dword [esp + 0x174]
test ecx, ecx
jne 0x47a476
cmp dword [esp + 0x170], 1
jne 0x47a476
push 0
push 1
push 0
push 0
push eax
mov ecx, ebx
call fcn.004a5a10
push 1
push 0
push 0
mov ecx, ebx
call fcn.004a6440
push 1
push 1
mov ecx, ebx
call fcn.004a98d0
mov esi, 0x54d7d0
lea ecx, [esp + 0x148]
mov byte [esp + 0x164], 0xb
mov dword [esp + 0x148], esi
call fcn.00473690
lea ecx, [esp + 0x120]
mov byte [esp + 0x164], 0xa
mov dword [esp + 0x120], esi
call fcn.00473690
lea ecx, [esp + 0xf8]
mov byte [esp + 0x164], 9
mov dword [esp + 0xf8], esi
call fcn.00473690
lea ecx, [esp + 0xd0]
mov byte [esp + 0x164], 8
call fcn.005189f2
lea ecx, [esp + 0xe4]
mov byte [esp + 0x164], 7
call fcn.00518d76
mov byte [esp + 0x164], 3
mov dword [esp + 0x10c], esi
lea ecx, [esp + 0x10c]
jmp 0x47a8d8
mov edx, dword [esp + 0x1c]
push 0
push 0
push 0
lea eax, [esp + 0x2c]
push 0
push eax
lea ecx, [esp + 0x50]
push 0
push ecx
push 0
push edx
mov ecx, ebx
call fcn.0047e860
cmp eax, 0xe
je 0x47a55d
cmp eax, 0xf
je 0x47a55d
cmp eax, 0x10
je 0x47a55d
mov byte [esp + 0x164], 2
mov esi, 0x54d7d0
jmp 0x47a8e5
cmp dword [esp + 0x3c], 1
jne 0x47a56f
mov dword [esp + 0x170], 0
mov eax, dword [esp + 0x18]
lea edx, [ebp + eax*8 - 4]
dec eax
test eax, eax
jl 0x47a63e
inc eax
mov dword [esp + 0x24], eax
jmp 0x47a58b
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov ecx, dword [edx - 4]
sub edx, 4
sub edx, 4
cmp ecx, 1
mov dword [esp + 0x30], edx
jge 0x47a5a4
mov ecx, 1
cmp eax, ecx
jl 0x47a62f
mov ebp, eax
sub ebp, ecx
mov ecx, ebx
inc ebp
dec eax
push eax
call fcn.004993b0
mov esi, eax
cmp esi, 0xffffffff
je 0x47a62f
test esi, esi
jl 0x47a62f
test ebp, ebp
jle 0x47a62f
mov ecx, dword [ebx + 0x50]
push esi
mov eax, dword [ecx]
call dword [eax + 0x1c]
test eax, eax
jne 0x47a62c
mov ecx, dword [ebx + 0x50]
push esi
call fcn.004d2630
mov edi, eax
push edi
call fcn.004d2510
mov ecx, dword [ebx + 0x3c]
add esp, 4
cmp ecx, 6
jne 0x47a5f9
cmp eax, 0x10000000
je 0x47a611
cmp ecx, 7
jne 0x47a605
cmp eax, 0x20000000
je 0x47a611
cmp ecx, 8
jne 0x47a62c
cmp eax, 0x30000000
jne 0x47a62c
push edi
push ecx
mov ecx, dword [ebx + 0x5c]
push ecx
mov ecx, 0x599ae0
call fcn.004ea220
mov ecx, dword [ebx + 0x50]
push esi
push esi
call fcn.004c5cf0
dec ebp
dec esi
jns 0x47a5c5
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x47a587
push 0
push 1
push 0
mov ecx, ebx
call fcn.004a69c0
mov edi, dword [esp + 0x16c]
test edi, edi
jne 0x47a672
push 1
push edi
mov ecx, ebx
call fcn.004a98d0
mov byte [esp + 0x164], 2
mov esi, 0x54d7d0
jmp 0x47a8e5
cmp dword [esp + 0x170], 1
jne 0x47a680
inc dword [esp + 0x20]
mov esi, dword [ebx + 0x5c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x264]
cmp eax, ecx
jl 0x47a693
mov eax, ecx
lea ecx, [esp + 0xb4]
mov dword [esp + 0x20], eax
call fcn.00473490
mov dword [esp + 0xc8], esi
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0x54d938
add edi, 0x260
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
mov byte [esp + 0x168], 4
call fcn.004d2660
mov ebp, eax
xor esi, esi
test ebp, ebp
jle 0x47a73a
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x1c]
test eax, eax
jne 0x47a735
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + esi*4]
push edx
call fcn.004d2510
mov ecx, dword [ebx + 0x3c]
add esp, 4
cmp ecx, 6
jne 0x47a70d
cmp eax, 0x10000000
je 0x47a725
cmp ecx, 7
jne 0x47a719
cmp eax, 0x20000000
je 0x47a725
cmp ecx, 8
jne 0x47a735
cmp eax, 0x30000000
jne 0x47a735
push 1
push esi
push edi
lea ecx, [esp + 0xb8]
call fcn.004c62f0
inc esi
cmp esi, ebp
jl 0x47a6e2
mov eax, dword [esp + 0xb0]
test eax, eax
mov dword [esp + 0xa4], eax
jle 0x47a888
cmp dword [esp + 0x174], 1
jne 0x47a7e0
mov esi, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x50]
push esi
call fcn.004d2630
mov edi, eax
test edi, edi
je 0x47a7e0
push edi
call fcn.004d2510
mov ecx, dword [ebx + 0x50]
add esp, 4
mov ebp, eax
mov eax, dword [ecx]
push esi
call dword [eax + 0x1c]
test eax, eax
jne 0x47a7d7
mov eax, dword [ebx + 0x3c]
cmp eax, 6
jne 0x47a79d
cmp ebp, 0x10000000
je 0x47a7b7
cmp eax, 7
jne 0x47a7aa
cmp ebp, 0x20000000
je 0x47a7b7
cmp eax, 8
jne 0x47a7d7
cmp ebp, 0x30000000
jne 0x47a7d7
mov ecx, dword [ebx + 0x5c]
push edi
push eax
push ecx
mov ecx, 0x599ae0
call fcn.004ea220
mov ecx, dword [ebx + 0x50]
push esi
push esi
call fcn.004c5cf0
dec dword [esp + 0x28]
jmp 0x47a7d8
inc esi
mov eax, dword [esp + 0x28]
test eax, eax
jg 0x47a766
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp + 0xa4]
neg edx
sbb edx, edx
xor esi, esi
and edx, ecx
test edi, edi
mov dword [esp + 0x1c], edx
jle 0x47a84b
mov ebp, 0xffffff
mov eax, dword [ebx + 0x5c]
cmp dword [eax + 0x17c], ebp
jne 0x47a81f
mov dword [eax + 0x17c], 0xffff
mov edx, dword [eax + 0x17c]
inc edx
mov dword [eax + 0x17c], edx
mov eax, edx
push eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + esi*4]
push ecx
call fcn.004d2520
mov edx, dword [esp + 0x24]
add esp, 8
mov dword [edx + esi*4], eax
inc esi
cmp esi, edi
jl 0x47a80a
mov ecx, dword [esp + 0x20]
push edi
lea eax, [esp + 0xb0]
push 0
push eax
push ecx
push 0x133
mov ecx, 0x599ae0
call fcn.004eb380
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x5c]
push edi
lea edx, [esp + 0xb0]
push 0
push edx
push eax
add ecx, 0x260
call fcn.004c6190
push 1
push 0
mov ecx, ebx
call fcn.004a98d0
mov dword [esp + 0xac], 0x54d7d4
lea ecx, [esp + 0xb4]
mov byte [esp + 0x164], 5
mov dword [esp + 0xb0], 0
call fcn.00473690
mov esi, 0x54d7d0
mov byte [esp + 0x164], 3
mov dword [esp + 0xb4], esi
lea ecx, [esp + 0xb4]
call fcn.00473690
mov byte [esp + 0x164], 2
lea ecx, [esp + 0x8c]
mov dword [esp + 0x8c], esi
call fcn.00473690
lea ecx, [esp + 0x60]
mov byte [esp + 0x164], 1
mov dword [esp + 0x60], esi
call fcn.00473690
lea ecx, [esp + 0x4c]
mov byte [esp + 0x164], 0
mov dword [esp + 0x4c], esi
call fcn.00473690
lea ecx, [esp + 0x74]
mov dword [esp + 0x164], 0xffffffff
call fcn.005189f2
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x158
ret 0x10