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

Disassembly:
sub esp, 0x114
mov eax, dword [0x5317cc]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x128]
mov esi, ecx
push eax
push edi
mov dword [esp + 0x24], esi
call dword [0x4fd1d0]
mov ecx, dword [0x531798]
mov dword [esp + 0x108], eax
push ecx
push edi
call dword [0x4fd1a8]
mov edx, dword [0x5317e0]
mov ecx, dword [0x5317cc]
mov dword [esp + 0x114], eax
mov eax, dword [0x5317ac]
mov dword [esp + 0xf4], edx
mov edx, dword [0x531798]
push 1
push edi
mov dword [esp + 0x108], eax
mov dword [0x5317e0], ecx
mov dword [0x5317ac], edx
call dword [0x4fd1d4]
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x120], eax
mov eax, dword [ecx + 0x178]
mov ebx, dword [ecx + 0x17c]
mov edx, dword [ecx + 0x184]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x180]
mov dword [esp + 0x104], ebx
mov dword [esp + 0xb0], eax
mov eax, dword [ecx + 0xf8]
cmp eax, 2
mov dword [esp + 0x50], edx
jne 0x469a65
mov eax, dword [esi + 0x198]
test eax, eax
je 0x4694ba
mov ecx, dword [esp + 0x140]
push ecx
call dword [0x4fd174]
mov ebp, eax
push ebp
push edi
call dword [0x4fd138]
mov eax, dword [esi + 0x60]
mov edi, dword [0x536200]
imul eax, edi
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x64]
imul ecx, dword [0x536214]
sub edx, eax
mov eax, dword [esp + 0x54]
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xb0]
add edx, eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x40], edx
mov edx, eax
sub edx, ecx
lea ecx, [edx + ebx]
mov ebx, eax
cmp eax, ecx
jg 0x46943e
mov ebx, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
add edx, ecx
cmp eax, edx
jg 0x469450
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
cmp esi, eax
jge 0x46949e
cmp esi, dword [esp + 0x3c]
jl 0x469491
cmp esi, dword [esp + 0x40]
jge 0x469491
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x128]
push 0x550009
sub edx, ebx
push edi
push edx
push esi
push ebx
push eax
call dword [0x4fd1a4]
mov edi, dword [0x536200]
mov eax, dword [esp + 0x134]
add esi, edi
cmp esi, eax
jl 0x469462
mov ecx, dword [esp + 0x128]
push 0
push ecx
call dword [0x4fd138]
push ebp
call dword [0x4fd1e0]
jmp 0x46a9f2
mov edx, dword [ecx + 0x1a0]
push 0
push edx
lea eax, [esp + 0x2c]
lea edx, [esp + 0x44]
push eax
push edx
call fcn.00453e10
mov ecx, dword [esi + 0x88]
push 0
lea edx, [esp + 0x28]
mov eax, dword [ecx + 0x1a4]
push eax
lea eax, [esp + 0x48]
push edx
push eax
call fcn.00453e10
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
cmp eax, ecx
mov dword [esp + 0x28], eax
jge 0x46a9f2
mov ecx, dword [esp + 0x138]
mov ebx, dword [esp + 0x28]
mov eax, ecx
lea ebp, [ecx + ecx*2]
shl ebp, 2
shl eax, 5
mov dword [esp + 0x54], ebp
mov dword [esp + 0x30], eax
cmp ecx, dword [esp + 0x13c]
jge 0x46a9f2
cmp ecx, dword [esp + 0x3c]
jl 0x469a2b
cmp ecx, dword [esp + 0x40]
jg 0x469a2b
mov esi, dword [esp + 0x1c]
xor edi, edi
mov eax, dword [esi + 0x88]
cmp dword [eax + 0x98], edi
je 0x469581
cmp ecx, dword [eax + 0x2a4]
jge 0x4695c6
mov ecx, dword [eax + 0x2a0]
add ecx, ebp
mov edx, ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], edx
jmp 0x4695cc
cmp dword [eax + 0x74], edi
jne 0x469596
cmp dword [eax + 0x80], edi
jne 0x469596
mov eax, ecx
mov dword [esp + 0x24], edi
jmp 0x4695cc
cmp ecx, dword [eax + 0x154]
jge 0x4695ba
mov eax, dword [eax + 0x150]
add eax, ebp
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], edx
jmp 0x4695cc
push edi
push edi
push 0x52a2ac
call fcn.004dad19
mov dword [esp + 0x24], edi
xor eax, eax
lea ecx, [esp + 0x14]
lea edx, [esp + 0x34]
push ecx
mov ecx, dword [esi + 0x88]
push edx
mov edx, dword [ecx + 0x1a0]
mov ecx, esi
sub eax, edx
push eax
call fcn.00469030
mov eax, dword [esi + 0x48]
mov edx, dword [esp + 0x34]
lea ecx, [eax + edx]
cmp eax, ecx
jle 0x4695fc
mov ecx, eax
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x140]
add edx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esi]
mov dword [esp + 0x14], edx
cmp eax, ecx
mov edi, eax
jg 0x46961b
mov edi, ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x84], edi
cmp eax, ebx
mov esi, eax
jg 0x46962d
mov esi, ebx
mov eax, dword [esp + 0x140]
mov dword [esp + 0x88], esi
mov eax, dword [eax + 8]
cmp eax, edx
jge 0x469644
mov edx, eax
mov ecx, dword [0x536200]
mov dword [esp + 0x8c], edx
lea eax, [ecx + ebx]
mov ecx, dword [esp + 0x140]
mov ecx, dword [ecx + 0xc]
cmp ecx, eax
jge 0x469664
mov eax, ecx
cmp edi, edx
mov dword [esp + 0x90], eax
jge 0x469a24
cmp esi, eax
jge 0x469a24
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
push 0
push 0
lea eax, [esp + 0x8c]
push 0
push eax
push 2
push 0
push 0
push ecx
mov dword [esp + 0x4c], edx
call dword [0x4fd1d8]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x88]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x4696c8
mov ecx, dword [eax + 0x2a0]
mov ebx, dword [ecx + ebp + 8]
jmp 0x4696f3
mov ecx, dword [eax + 0x74]
test ecx, ecx
jne 0x4696e9
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x4696e9
mov edx, dword [eax + 0x2d8]
mov ecx, dword [esp + 0x30]
mov ebx, dword [edx + ecx]
dec ebx
jmp 0x4696f3
mov edx, dword [eax + 0x150]
mov ebx, dword [edx + ebp + 8]
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x20], ebx
test ecx, ecx
je 0x469729
mov ecx, dword [eax + 0x2a0]
mov eax, dword [eax + 0x2d8]
add ecx, ebp
mov esi, ecx
mov ecx, dword [esi]
shl ecx, 5
mov edx, dword [esi + 4]
mov ecx, dword [eax + ecx + 8]
mov esi, dword [esi + 8]
mov dword [esp + 0x4c], esi
lea eax, [ecx + edx*2]
jmp 0x46978d
mov ecx, dword [eax + 0x74]
test ecx, ecx
jne 0x46974a
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x46974a
mov edx, dword [eax + 0x2d8]
mov eax, dword [esp + 0x30]
mov eax, dword [edx + eax + 8]
jmp 0x46978d
mov ecx, dword [eax + 0x150]
add ecx, ebp
mov edx, ecx
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x284]
dec edx
cmp edx, ecx
mov esi, edx
jl 0x46976f
mov esi, ecx
test esi, esi
jge 0x469777
xor ecx, ecx
jmp 0x46977d
cmp edx, ecx
jge 0x46977d
mov ecx, edx
mov eax, dword [eax + 0x2d8]
shl ecx, 5
mov ecx, dword [ecx + eax + 8]
lea eax, [ecx + edi*2]
cmp ebx, 0x1000
mov dword [esp + 0x10], eax
jle 0x4698ff
mov esi, 0x1000
add eax, 0x1ffe
mov cx, word [eax]
cmp cx, 0x20
je 0x4697c2
cmp cx, 9
je 0x4697c2
dec esi
sub eax, 2
cmp esi, 0x800
jg 0x4697a7
mov edx, dword [esp + 0x1c]
xor edi, edi
mov ebp, dword [edx + 0x88]
add ebp, 0x100
test esi, esi
jle 0x469884
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x50], esi
mov ax, word [ebx]
cmp ax, 9
jne 0x4697f9
mov ecx, dword [ebp]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
jmp 0x469870
mov dword [esp + 0x38], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46986b
mov edx, dword [esp + 0x128]
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x3c]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46984f
mov eax, dword [0x536220]
mov ecx, dword [esp + 0xa8]
sub ecx, eax
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x38]
mov dx, word [esp + 0xa8]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
xor ecx, ecx
mov cx, word [eax]
mov eax, dword [esp + 0x50]
add edi, ecx
add ebx, 2
dec eax
mov dword [esp + 0x50], eax
jne 0x4697e4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x8c]
cmp eax, ecx
jge 0x4698d4
mov ecx, dword [esp + 0x84]
lea edx, [edi + eax]
cmp edx, ecx
jl 0x4698d4
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x84]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push esi
push edx
mov edx, dword [esp + 0x138]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.0046c650
jmp 0x4698da
add eax, edi
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
sub ebx, esi
lea eax, [eax + esi*2]
cmp ebx, 0x1000
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], eax
jg 0x46979d
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x12c]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x84]
push ecx
push edx
push ebx
mov ebx, dword [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push ebx
push eax
push esi
mov ecx, edi
call fcn.0046c650
mov eax, dword [0x55f838]
test eax, eax
je 0x469a20
mov ecx, dword [esp + 0x13c]
lea edx, [ecx - 1]
mov ecx, dword [esp + 0x138]
cmp ecx, edx
jge 0x469a20
mov eax, dword [edi + 0x88]
cmp ecx, 0xffffffff
je 0x4699b7
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x469987
mov eax, dword [eax + 0x2a0]
lea ecx, [eax + ebp + 0xc]
mov edx, dword [eax + ebp + 0xc]
mov dword [esp + 0x58], edx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x60], ecx
jmp 0x4699aa
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x4699b7
mov eax, dword [eax + 0x150]
lea ecx, [eax + ebp + 0xc]
mov edx, dword [eax + ebp + 0xc]
mov dword [esp + 0x58], edx
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x60], ecx
xor edx, edx
test eax, eax
setg dl
mov eax, edx
test eax, eax
jne 0x469a20
mov eax, dword [0x528adc]
mov byte [esp + 0x1b], 0xb6
test eax, eax
je 0x4699e7
mov edx, dword [esp + 0x2c]
push 0
lea eax, [esp + 0x1f]
push 1
lea ecx, [esp + 0x8c]
push eax
push ecx
push 4
push ebx
push edx
push esi
call dword [0x4fd1d8]
jmp 0x469a20
mov eax, dword [0x5361e4]
mov edi, dword [0x4fd1b0]
push eax
push esi
call edi
mov eax, dword [esp + 0x2c]
push 0
lea ecx, [esp + 0x1f]
push 1
lea edx, [esp + 0x8c]
push ecx
push edx
push 4
push ebx
push eax
push esi
call dword [0x4fd1d8]
mov ecx, dword [0x5361ec]
push ecx
push esi
call edi
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x138]
mov edx, dword [0x536200]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x134]
add ebx, edx
inc ecx
add edi, 0x20
add ebp, 0xc
cmp ebx, eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x28], ebx
jl 0x469528
jmp 0x46a9f2
mov eax, dword [ecx + 0x74]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], ebp
je 0x469a85
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x34], 1
cmp eax, ebp
jne 0x469a89
mov dword [esp + 0x34], ebp
cmp dword [ecx + 0x98], ebp
je 0x469ac1
mov ebx, dword [esp + 0x138]
mov eax, dword [ecx + 0x2a4]
cmp ebx, eax
jge 0x469b15
mov eax, dword [ecx + 0x2a0]
lea edx, [ebx + ebx*2]
lea ecx, [eax + edx*4]
mov edi, dword [eax + edx*4]
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
jmp 0x469b17
cmp dword [ecx + 0x74], ebp
jne 0x469ad9
cmp dword [ecx + 0x80], ebp
jne 0x469ad9
mov ebx, dword [esp + 0x138]
mov edi, ebx
jmp 0x469b17
mov ebx, dword [esp + 0x138]
mov eax, dword [ecx + 0x154]
cmp ebx, eax
jge 0x469b09
mov eax, dword [ecx + 0x150]
lea edx, [ebx + ebx*2]
lea ecx, [eax + edx*4]
mov edi, dword [eax + edx*4]
mov edx, dword [ecx + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
jmp 0x469b17
push ebp
push ebp
push 0x52a2ac
call fcn.004dad19
xor edi, edi
cmp dword [esp + 0x34], ebp
je 0x469b94
mov ecx, dword [esi + 0x88]
cmp ebx, ebp
je 0x469b94
cmp dword [ecx + 0x98], ebp
je 0x469b4d
mov eax, dword [ecx + 0x2a0]
lea edx, [ebx + ebx*2]
lea edx, [eax + edx*4]
mov eax, dword [edx]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x60], edx
jmp 0x469b70
cmp dword [ecx + 0x74], ebp
je 0x469b94
mov edx, dword [ecx + 0x150]
lea eax, [ebx + ebx*2]
lea eax, [edx + eax*4]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x60], edx
xor edx, edx
cmp eax, ebp
setg dl
mov eax, edx
cmp eax, ebp
je 0x469b94
push ebp
push edi
call fcn.0044e550
mov ecx, dword [esi + 0x88]
push eax
call fcn.00455070
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
cmp eax, ecx
mov dword [esp + 0x28], eax
jge 0x46a9f2
mov ebx, dword [esp + 0x138]
mov edi, eax
cmp ebx, dword [esp + 0x13c]
jge 0x46a9f2
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
test eax, eax
je 0x469ce8
mov eax, dword [ebp + 0x88]
test ebx, ebx
je 0x469c42
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x469c08
mov edx, dword [eax + 0x2a0]
lea ecx, [ebx + ebx*2]
lea ecx, [edx + ecx*4]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
jmp 0x469c2d
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x469c42
mov edx, dword [eax + 0x150]
lea ecx, [ebx + ebx*2]
lea ecx, [edx + ecx*4]
mov edx, ecx
mov ecx, dword [edx]
mov dword [esp + 0x44], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
xor edx, edx
test ecx, ecx
setg dl
mov ecx, edx
test ecx, ecx
jne 0x469cdc
mov ebp, dword [esp + 0x1c]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x469c74
cmp ebx, dword [eax + 0x2a4]
jge 0x469cbe
mov edx, dword [eax + 0x2a0]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*4]
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
jmp 0x469cc0
mov ecx, dword [eax + 0x74]
test ecx, ecx
jne 0x469c89
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x469c89
mov eax, ebx
jmp 0x469cc0
cmp ebx, dword [eax + 0x154]
jge 0x469cb0
mov eax, dword [eax + 0x150]
lea edx, [ebx + ebx*2]
lea ecx, [eax + edx*4]
mov eax, dword [eax + edx*4]
mov edx, dword [ecx + 4]
mov dword [esp + 0x48], edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
jmp 0x469cc0
push 0
push 0
push 0x52a2ac
call fcn.004dad19
xor eax, eax
mov ecx, dword [ebp + 0x88]
push 0
push eax
call fcn.0044e550
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0
jmp 0x469ce8
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x54]
push eax
lea edx, [esp + 0xcc]
push ecx
mov ecx, dword [ebp + 0x88]
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.00453e10
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xb0]
push ecx
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0xc4]
push eax
push ecx
mov ecx, dword [ebp + 0x88]
call fcn.00453e10
mov esi, dword [esp + 0xc4]
cmp ebx, esi
jl 0x46a9cf
cmp ebx, dword [esp + 0xbc]
jg 0x46a9cf
mov edx, dword [0x536200]
mov ebp, dword [ebp + 0x88]
mov dword [esp + 0x70], edi
mov dword [esp + 0x68], edi
lea eax, [edx + edi]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x98]
test eax, eax
je 0x469d90
mov ecx, dword [ebp + 0x2a0]
lea eax, [ebx + ebx*2]
mov edx, dword [ecx + eax*4 + 8]
jmp 0x469dbf
mov eax, dword [ebp + 0x74]
test eax, eax
jne 0x469db2
mov eax, dword [ebp + 0x80]
test eax, eax
jne 0x469db2
mov eax, dword [ebp + 0x2d8]
mov edx, ebx
shl edx, 5
mov edx, dword [eax + edx]
dec edx
jmp 0x469dbf
mov edx, dword [ebp + 0x150]
lea ecx, [ebx + ebx*2]
mov edx, dword [edx + ecx*4 + 8]
mov eax, dword [ebp + 0x98]
mov dword [esp + 0x20], edx
test eax, eax
je 0x469dfd
mov ecx, dword [ebp + 0x2a0]
lea eax, [ebx + ebx*2]
lea eax, [ecx + eax*4]
mov edi, eax
mov eax, dword [edi]
shl eax, 5
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
mov dword [esp + 0x4c], edi
mov edi, dword [ebp + 0x2d8]
mov eax, dword [eax + edi + 8]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x10], ecx
jmp 0x469e79
mov eax, dword [ebp + 0x74]
test eax, eax
jne 0x469e23
mov eax, dword [ebp + 0x80]
test eax, eax
jne 0x469e23
mov eax, dword [ebp + 0x2d8]
mov ecx, ebx
shl ecx, 5
mov ecx, dword [eax + ecx + 8]
mov dword [esp + 0x10], ecx
jmp 0x469e79
mov edx, dword [ebp + 0x150]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*4]
mov ecx, eax
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ebp + 0x284]
dec ecx
mov dword [esp + 0x4c], edx
cmp ecx, eax
mov edx, ecx
jl 0x469e4c
mov edx, eax
test edx, edx
jge 0x469e54
xor eax, eax
jmp 0x469e5a
cmp ecx, eax
jge 0x469e5a
mov eax, ecx
mov ecx, dword [ebp + 0x2d8]
shl eax, 5
mov edx, dword [eax + ecx + 8]
lea ecx, [edx + esi*2]
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xbc]
cmp esi, eax
jne 0x46a1ac
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0x24]
test eax, eax
jle 0x469f4f
mov ebx, dword [0x4fd160]
mov edi, ecx
mov dword [esp + 0x14], eax
mov ax, word [edi]
cmp ax, 9
jne 0x469ebf
mov ecx, dword [ebp + 0x100]
mov eax, esi
cdq
idiv ecx
sub ecx, edx
jmp 0x469f3b
mov dword [esp + 0xb8], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x469f36
mov edx, dword [esp + 0x128]
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0xbc]
push 1
push ecx
push edx
call ebx
mov eax, dword [0x536238]
test eax, eax
je 0x469f17
mov eax, dword [0x536220]
mov ecx, dword [esp + 0xd4]
sub ecx, eax
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xb8]
mov dx, word [esp + 0xd4]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
xor ecx, ecx
mov cx, word [eax]
mov eax, dword [esp + 0x14]
add esi, ecx
add edi, 2
dec eax
mov dword [esp + 0x14], eax
jne 0x469ea7
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov ebp, dword [edx + 0x88]
mov edx, dword [esp + 0x12c]
mov ecx, dword [ebp + 0xd0]
add ecx, esi
add ecx, edx
mov edx, dword [esp + 0x30]
test edx, edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x64], ecx
jle 0x46a043
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov ax, word [ebx]
cmp ax, 9
jne 0x469fa7
mov esi, dword [ebp + 0x100]
mov eax, edi
cdq
idiv esi
sub esi, edx
add edi, esi
jmp 0x46a02d
mov dword [esp + 0xc0], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a026
mov edx, dword [esp + 0x128]
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0xc4]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a003
mov eax, dword [0x536220]
mov ecx, dword [esp + 0xec]
sub ecx, eax
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0xc0]
mov dx, word [esp + 0xec]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov ecx, dword [esp + 0x7c]
mov word [eax], dx
xor edx, edx
mov dx, word [eax]
add edi, edx
mov eax, dword [esp + 0x14]
add ebx, 2
dec eax
mov dword [esp + 0x14], eax
jne 0x469f8a
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0x88]
mov eax, dword [eax + 0xd0]
add eax, edi
add eax, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
mov ebx, dword [esp + 0x138]
mov ebp, dword [esp + 0x128]
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x88]
mov edx, dword [eax + 0xd4]
test edx, edx
je 0x46a0d0
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
add esi, edx
push 2
mov dword [esp + 0x68], esi
mov eax, dword [eax + 0xd4]
add ecx, eax
push 4
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x6c]
push ecx
call dword [0x4fd13c]
push eax
push ebp
mov dword [esp + 0xb0], eax
call dword [0x4fd138]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x140]
mov eax, dword [edi]
cmp eax, ecx
jle 0x46a0df
mov ecx, eax
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x70]
cmp eax, esi
mov dword [esp + 0x94], ecx
jle 0x46a0f3
mov esi, eax
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x6c]
cmp eax, edx
mov dword [esp + 0x98], esi
mov edx, eax
jl 0x46a10b
mov edx, dword [esp + 0x6c]
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x80]
cmp eax, edi
mov dword [esp + 0x9c], edx
jl 0x46a122
mov eax, edi
cmp ecx, edx
mov dword [esp + 0xa0], eax
jge 0x46a999
cmp esi, eax
jge 0x46a999
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x24]
push 0
push 0
lea ecx, [esp + 0x9c]
push 0
push ecx
push 2
push 0
add eax, edx
push 0
push ebp
mov dword [esp + 0x4c], eax
call dword [0x4fd1d8]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x88]
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x46a710
mov edx, dword [eax + 0x2a0]
lea ecx, [ebx + ebx*2]
mov eax, dword [eax + 0x2d8]
lea ecx, [edx + ecx*4]
mov esi, ecx
mov ecx, dword [esi]
shl ecx, 5
mov edx, dword [esi + 4]
mov ecx, dword [eax + ecx + 8]
mov esi, dword [esi + 8]
mov dword [esp + 0x4c], esi
lea eax, [ecx + edx*2]
jmp 0x46a779
cmp ebx, esi
jne 0x46a375
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0x24]
test eax, eax
jle 0x46a27e
mov ebx, dword [0x4fd160]
mov edi, ecx
mov dword [esp + 0x14], eax
mov ax, word [edi]
cmp ax, 9
jne 0x46a1ed
mov ecx, dword [ebp + 0x100]
mov eax, esi
cdq
idiv ecx
sub ecx, edx
add esi, ecx
jmp 0x46a26c
mov dword [esp + 0xd0], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a265
mov eax, dword [esp + 0x128]
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0xd4]
push 1
push edx
push eax
call ebx
mov eax, dword [0x536238]
test eax, eax
je 0x46a246
mov ecx, dword [0x536220]
mov eax, dword [esp + 0x118]
sub eax, ecx
mov dword [esp + 0x118], eax
mov edx, dword [esp + 0xd0]
mov cx, word [esp + 0x118]
and edx, 0xffff
lea eax, [edx*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
mov dx, word [eax]
add esi, edx
mov eax, dword [esp + 0x14]
add edi, 2
dec eax
mov dword [esp + 0x14], eax
jne 0x46a1d3
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x12c]
mov edi, dword [esp + 0x24]
mov ebp, dword [eax + 0x88]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0xd0]
add ecx, esi
add ecx, edx
test eax, eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x64], ecx
jle 0x46a562
mov ebx, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x14], edx
mov ax, word [ebx]
cmp ax, 9
jne 0x46a2d8
mov esi, dword [ebp + 0x100]
mov eax, edi
cdq
idiv esi
sub esi, edx
add edi, esi
jmp 0x46a35e
mov dword [esp + 0xcc], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a357
mov edx, dword [esp + 0x128]
lea eax, [esp + 0xf8]
push eax
lea ecx, [esp + 0xd0]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a334
mov eax, dword [0x536220]
mov ecx, dword [esp + 0xf8]
sub ecx, eax
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0xcc]
mov dx, word [esp + 0xf8]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov ecx, dword [esp + 0x7c]
mov word [eax], dx
xor edx, edx
mov dx, word [eax]
add edi, edx
mov eax, dword [esp + 0x14]
add ebx, 2
dec eax
mov dword [esp + 0x14], eax
jne 0x46a2bb
jmp 0x46a562
mov ecx, dword [ebp + 0xd0]
cmp ebx, eax
jne 0x46a48a
mov edx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
add ecx, edx
test ebx, ebx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x64], ecx
jle 0x46a45e
mov ebp, dword [esp + 0x10]
mov ax, word [ebp]
cmp ax, 9
jne 0x46a3ca
mov edx, dword [esp + 0x14]
mov eax, edi
mov esi, dword [edx + 0x100]
cdq
idiv esi
sub esi, edx
add edi, esi
jmp 0x46a450
mov dword [esp + 0xa4], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a449
mov edx, dword [esp + 0x128]
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0xa8]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a426
mov eax, dword [0x536220]
mov ecx, dword [esp + 0x10c]
sub ecx, eax
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0xa4]
mov dx, word [esp + 0x10c]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov ecx, dword [esp + 0x7c]
mov word [eax], dx
xor edx, edx
mov dx, word [eax]
add edi, edx
add ebp, 2
dec ebx
jne 0x46a3a8
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov edx, dword [eax + 0x88]
mov eax, dword [edx + 0xd0]
mov edx, dword [esp + 0x12c]
add eax, edi
add eax, edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
jmp 0x46a06a
mov esi, dword [esp + 0x12c]
mov edi, dword [esp + 0x24]
add ecx, esi
test edx, edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x64], ecx
jle 0x46a562
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov ax, word [ebp]
cmp ax, 9
jne 0x46a4d1
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x100]
mov eax, edi
cdq
idiv esi
sub esi, edx
add edi, esi
jmp 0x46a558
mov dword [esp + 0xb4], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a551
mov eax, dword [esp + 0x128]
lea ecx, [esp + 0xdc]
push ecx
lea edx, [esp + 0xb8]
push 1
push edx
push eax
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a52e
mov ecx, dword [0x536220]
mov eax, dword [esp + 0xdc]
sub eax, ecx
mov dword [esp + 0xdc], eax
mov edx, dword [esp + 0xb4]
mov cx, word [esp + 0xdc]
and edx, 0xffff
lea eax, [edx*2 + 0x53623c]
mov word [eax], cx
mov ecx, dword [esp + 0x7c]
xor edx, edx
mov dx, word [eax]
add edi, edx
add ebp, 2
dec ebx
jne 0x46a4af
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x138]
mov dword [esp + 0x14], 1
mov edx, dword [eax + 0x88]
mov eax, dword [edx + 0xd0]
add eax, edi
add eax, esi
lea esi, [ebx + 1]
test esi, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
je 0x46a5f5
mov edi, dword [edx + 0x98]
test edi, edi
je 0x46a5c3
mov edx, dword [edx + 0x2a0]
lea esi, [esi + esi*2]
lea edx, [edx + esi*4]
mov esi, dword [edx]
mov dword [esp + 0x44], esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
jmp 0x46a5e6
mov edi, dword [edx + 0x74]
test edi, edi
je 0x46a5f5
mov edx, dword [edx + 0x150]
lea esi, [esi + esi*2]
lea edx, [edx + esi*4]
mov esi, dword [edx]
mov dword [esp + 0x44], esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
xor edx, edx
test esi, esi
setg dl
test edx, edx
jne 0x46a071
cmp word [0x5561a8], 0
mov edx, 0xffb6
mov dword [esp + 0x10], edx
jne 0x46a669
mov ebp, dword [esp + 0x128]
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0x14]
push 1
push ecx
push ebp
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a644
mov edx, dword [0x536220]
mov eax, dword [esp + 0xe4]
sub eax, edx
mov dword [esp + 0xe4], eax
mov edx, dword [esp + 0x10]
mov cx, word [esp + 0xe4]
mov eax, edx
and eax, 0xffff
mov word [eax*2 + 0x53623c], cx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
jmp 0x46a670
mov ebp, dword [esp + 0x128]
mov edi, dword [esp + 0x6c]
and edx, 0xffff
xor esi, esi
mov si, word [edx*2 + 0x53623c]
mov edx, 0xffb6
add edi, esi
cmp word [0x5561a8], 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x10], edx
jne 0x46a6f5
lea edx, [esp + 0x84]
lea eax, [esp + 0x10]
push edx
push 1
push eax
push ebp
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a6d2
mov ecx, dword [0x536220]
mov eax, dword [esp + 0x84]
sub eax, ecx
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x10]
mov cx, word [esp + 0x84]
mov eax, edx
and eax, 0xffff
mov word [eax*2 + 0x53623c], cx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
and edx, 0xffff
xor esi, esi
mov si, word [edx*2 + 0x53623c]
add eax, esi
mov dword [esp + 0x74], eax
jmp 0x46a080
mov ecx, dword [eax + 0x74]
test ecx, ecx
jne 0x46a732
mov ecx, dword [eax + 0x80]
test ecx, ecx
jne 0x46a732
mov eax, dword [eax + 0x2d8]
mov edx, ebx
shl edx, 5
mov eax, dword [eax + edx + 8]
jmp 0x46a779
mov edx, dword [eax + 0x150]
lea ecx, [ebx + ebx*2]
lea ecx, [edx + ecx*4]
mov edx, ecx
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x284]
dec edx
cmp edx, ecx
mov esi, edx
jl 0x46a75b
mov esi, ecx
test esi, esi
jge 0x46a763
xor ecx, ecx
jmp 0x46a769
cmp edx, ecx
jge 0x46a769
mov ecx, edx
mov eax, dword [eax + 0x2d8]
shl ecx, 5
mov ecx, dword [eax + ecx + 8]
lea eax, [ecx + edi*2]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
cmp ecx, 0x1000
jle 0x46a958
mov esi, 0x1000
add eax, 0x1ffe
mov cx, word [eax]
cmp cx, 0x20
je 0x46a7b2
cmp cx, 9
je 0x46a7b2
dec esi
sub eax, 2
cmp esi, 0x800
jg 0x46a797
mov edx, dword [esp + 0x1c]
xor edi, edi
mov ebp, dword [edx + 0x88]
add ebp, 0x100
test esi, esi
jle 0x46a868
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
mov ax, word [ebx]
cmp ax, 9
jne 0x46a7e9
mov ecx, dword [ebp]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
jmp 0x46a854
mov dword [esp + 0x40], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x46a84f
mov edx, dword [esp + 0x128]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x44]
push 1
push ecx
push edx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x46a836
mov eax, dword [0x536220]
mov ecx, dword [esp + 0x58]
sub ecx, eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x40]
mov dx, word [esp + 0x58]
and ecx, 0xffff
lea eax, [ecx*2 + 0x53623c]
mov word [eax], dx
xor ecx, ecx
mov cx, word [eax]
mov eax, dword [esp + 0x3c]
add edi, ecx
add ebx, 2
dec eax
mov dword [esp + 0x3c], eax
jne 0x46a7d4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
jge 0x46a8b8
mov ecx, dword [esp + 0x94]
lea edx, [edi + eax]
cmp edx, ecx
jl 0x46a8b8
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x128]
lea eax, [esp + 0x94]
push eax
push ecx
mov ecx, dword [esp + 0x24]
push esi
push edx
lea eax, [esp + 0x3c]
push edi
push eax
push ebp
call fcn.0046c650
jmp 0x46a8c9
mov ebp, dword [esp + 0x128]
add eax, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
sub ecx, esi
lea eax, [edx + esi*2]
cmp ecx, 0x1000
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], eax
jg 0x46a78d
mov ebx, dword [esp + 0x138]
mov edx, dword [esp + 0x12c]
lea ecx, [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x3c]
push edi
push edx
push ebp
call fcn.0046c650
mov eax, dword [0x55f838]
test eax, eax
je 0x46a99d
mov eax, dword [esp + 0x14]
test eax, eax
je 0x46a99d
mov eax, dword [0x528adc]
mov byte [esp + 0x1b], 0xb6
test eax, eax
je 0x46a95e
mov edx, dword [esp + 0x2c]
push 0
lea eax, [esp + 0x1f]
push 1
lea ecx, [esp + 0x9c]
push eax
push ecx
push 4
push edi
push edx
push ebp
call dword [0x4fd1d8]
jmp 0x46a99d
mov edi, dword [esp + 0x28]
jmp 0x46a8f1
mov eax, dword [0x5361e4]
mov esi, dword [0x4fd1b0]
push eax
push ebp
call esi
mov eax, dword [esp + 0x2c]
push 0
lea ecx, [esp + 0x1f]
push 1
lea edx, [esp + 0x9c]
push ecx
push edx
push 4
push edi
push eax
push ebp
call dword [0x4fd1d8]
mov ecx, dword [0x5361ec]
push ecx
push ebp
call esi
jmp 0x46a99d
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x88]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x46a9cf
mov ecx, dword [esp + 0x128]
push 0
push ecx
call dword [0x4fd138]
mov edx, dword [esp + 0xa8]
push edx
call dword [0x4fd1e0]
mov ecx, dword [0x536200]
mov eax, dword [esp + 0x134]
add edi, ecx
inc ebx
cmp edi, eax
mov dword [esp + 0x138], ebx
mov dword [esp + 0x28], edi
jl 0x469bb7
mov edx, dword [esp + 0x108]
mov esi, dword [esp + 0x128]
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x100]
push edx
push esi
mov dword [0x5317e0], eax
mov dword [0x5317ac], ecx
call dword [0x4fd1d0]
mov eax, dword [esp + 0x114]
push eax
push esi
call dword [0x4fd1a8]
mov ecx, dword [esp + 0x120]
push ecx
push esi
call dword [0x4fd1d4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret 0x1c