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

Disassembly:
mov eax, dword [0x564e38]
sub esp, 0x518
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
jne 0x416ce7
push 0xffffffffffffffff
push 0x89a8
push 0x195
push 0x269
push ebx
push 0xc
call fcn.00448610
mov edx, eax
mov ecx, 0x1b08
xor eax, eax
mov edi, 0x54dbe0
rep stosd dword es:[edi], eax
mov ecx, 0x14
mov edi, 0x54c88c
rep stosd dword es:[edi], eax
add esp, 0x18
xor esi, esi
xor ecx, ecx
mov dword [0x564e38], edx
mov dword [0x54c908], ebx
mov dword [0x54cd10], ebx
mov dword [0x54c904], esi
mov dword [0x54c900], ecx
mov dword [0x54ccfc], ebx
mov dword [0x54c880], ebx
mov dword [0x54c87c], ebx
mov dword [0x4aa044], 0xffffffff
mov eax, 0x462cdcc
cmp word [eax], bx
jne 0x416c7a
inc ecx
add eax, 0x184
cmp eax, 0x462e488
jl 0x416c74
mov dword [0x54c900], ecx
mov eax, 0x46274ce
cmp word [eax], bx
jne 0x416c97
inc esi
add eax, 0xb18
cmp eax, 0x462ac46
jl 0x416c91
mov eax, dword [0x564e48]
mov dword [0x54c904], esi
cmp eax, ebx
je 0x416cc7
push eax
call fcn.004011c0
mov edx, dword [0x564e38]
add esp, 4
mov dword [0x564e48], ebx
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0x18]
add eax, 0x14
push 1
add ecx, 0x136
push eax
push ecx
call fcn.0044aa20
add esp, 0xc
jmp 0x417c2d
cmp dword [eax + 0x78], ebx
jle 0x417c2d
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x1c]
push 0x14
push 0x54c88c
mov dword [esp + 0x24], ebx
call fcn.004210e0
push 2
lea esi, [ebp + 0x17a]
push 0x66b1
push 0x69
lea edx, [ebx + 0x19a]
push esi
push edx
mov dword [esp + 0x34], eax
call fcn.0047e210
push 2
mov dword [0x54cce8], eax
push 0x66b3
push 0x69
lea eax, [ebx + 0x217]
push esi
push eax
call fcn.0047e210
push 2
push 0x66db
lea ecx, [ebp + 0x22]
lea esi, [ebx + 0x12c]
push 0x69
push ecx
push esi
mov dword [0x54ccec], eax
call fcn.0047e210
add esp, 0x44
lea edx, [ebp + 0x176]
mov dword [0x54ccf0], eax
push 2
push 0x66dc
push 0x69
push edx
push esi
call fcn.0047e210
mov dword [0x54ccf4], eax
mov eax, dword [0x564e58]
add esp, 0x14
xor edi, edi
cmp eax, edi
push 2
je 0x416da9
push 0x6768
lea eax, [ebp + 0x13e]
push 0x69
lea ecx, [ebx + 0x230]
push eax
push ecx
jmp 0x416dbe
push 0x6767
lea edx, [ebp + 0x13e]
push 0x69
lea eax, [ebx + 0x230]
push edx
push eax
call fcn.0047e210
mov ecx, dword [0x45f1bc4]
mov edx, dword [0x45f1bf0]
add esp, 0x14
mov dword [0x54ccf8], eax
xor esi, esi
and ecx, 1
mov eax, 0x54cce8
cmp ecx, edi
je 0x416de9
cmp edx, dword [eax]
je 0x416df9
add eax, 4
inc esi
cmp eax, 0x54ccfc
jl 0x416de1
jmp case.default.0x416e19
push 0xf0
push 0x140
push 0xd9
call fcn.00488190
add esp, 0xc
cmp esi, 4
ja case.default.0x416e19
jmp dword [esi*4 + 0x418240]
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x428]
mov dword [esp + 0x14], 0
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [esp + 0x4a8]
rep stosd dword es:[edi], eax
mov ebx, 0x54dc1c
mov al, byte [ebx + 5]
test al, al
je 0x416ea0
mov ecx, dword [ebx]
lea edx, [esp + 0x20]
push ecx
push 0x4aa298
push edx
call fcn.004923a7
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x4a8]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
inc eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x14], eax
add ebx, 0x568
cmp ebx, 0x55483c
jl 0x416e4b
mov eax, dword [esp + 0x14]
test eax, eax
je 0x416ef0
lea ecx, [esp + 0x4a8]
lea edx, [esp + 0x428]
push ecx
push eax
push str.B_d_s
push edx
call fcn.004923a7
mov ecx, dword [0x461b404]
lea eax, [esp + 0x438]
push eax
push ecx
call fcn.00490560
mov ebx, dword [esp + 0x34]
add esp, 0x18
xor edi, edi
jmp 0x416f24
mov edx, dword [0x461b404]
push 0x4aa28c
push edx
call fcn.00490560
mov ebx, dword [esp + 0x24]
add esp, 8
xor edi, edi
jmp 0x416f24
cmp esi, 1
jne 0x416f24
mov eax, dword [0x461b404]
push 0x4aa28c
push eax
call fcn.00490560
add esp, 8
mov eax, dword [0x564e48]
mov word [0x564e3e], di
cmp eax, edi
mov word [0x5676a0], di
je 0x416f4c
mov ecx, eax
push ecx
call fcn.004011c0
add esp, 4
mov dword [0x564e48], edi
mov eax, dword [0x564e44]
cmp eax, edi
je 0x416f5e
push eax
call fcn.004011c0
add esp, 4
mov dword [0x564e44], edi
jmp case.default.0x416e19
mov edx, dword [0x54ccfc]
dec edx
mov dword [0x54ccfc], edx
jns 0x416fb6
xor edx, edx
mov dword [0x54ccfc], edx
jmp 0x416fb6
mov edx, dword [0x54ccfc]
inc edx
cmp edx, 0xd
mov dword [0x54ccfc], edx
jle 0x416fb6
mov edx, 0xd
mov dword [0x54ccfc], edx
jmp 0x416fb6
mov eax, dword [0x564e58]
xor edx, edx
cmp eax, edi
sete dl
mov dword [0x564e58], edx
mov edx, dword [0x54ccfc]
lea eax, [edx + 0xd]
mov dword [esp + 0x10], edx
cmp edx, eax
jge 0x4170f2
lea eax, [edx*8]
mov dword [esp + 0x14], 0x54c88c
sub eax, edx
lea edi, [ebp + 0x16]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*2]
lea ecx, [edx + eax*4]
lea esi, [ecx*8 + 0x54dbe8]
mov al, byte [esi + 0x38]
test al, al
je 0x4170a6
mov al, byte [esi + 0x189]
test al, al
mov eax, dword [esi]
jne 0x417028
test eax, eax
jne 0x417018
mov edx, dword [esi - 4]
push 0x4aa1bc
lea eax, [esi + 0x3b]
push edx
push eax
push str.__20sx_3d_13s
jmp 0x41704e
mov edx, dword [esi - 4]
push eax
lea eax, [esi + 0x3b]
push edx
push eax
push str.__20sx_3d_13d
jmp 0x41704e
test eax, eax
jne 0x417040
lea edx, [esi + 0x58]
push 0x4aa1bc
lea eax, [esi + 0x3b]
push edx
push eax
push str.__17s__12s_8s
jmp 0x41704e
push eax
lea edx, [esi + 0x58]
lea eax, [esi + 0x3b]
push edx
push eax
push str.__17s__12s_8d
lea ecx, [esp + 0x38]
push ecx
call fcn.004923a7
add esp, 0x14
lea edx, [esp + 0x28]
lea eax, [ebx + 0x14]
push 2
push edx
push 0
push 1
push edi
push eax
call fcn.0041d860
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx], eax
mov al, byte [esi + 0x39]
test al, al
je 0x4170c4
lea eax, [edi - 3]
push 0
push 0xf9
push 0x6b
lea edx, [eax + 0x14]
lea ecx, [ebx + 0x118]
push edx
push ecx
lea edx, [ebx + 0x12]
push eax
push edx
call fcn.0047e640
add esp, 0x1c
jmp 0x4170c4
push 0
push 0x4e220c
push 0
push 1
lea eax, [ebx + 0x14]
push edi
push eax
call fcn.0041d860
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [0x54ccfc]
mov eax, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x14], ecx
inc eax
lea ecx, [edx + 0xd]
add esi, 0x568
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x416fe9
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 3
mov bl, byte [ecx + 0x54dc22]
test bl, bl
je 0x417972
mov bl, byte [ecx + 0x54dd71]
test bl, bl
jne 0x4172ee
mov esi, dword [ecx + 0x54dbec]
lea ecx, [ecx + 0x54dc5d]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x564e48]
lea edx, [ebp + 0xc6]
test ecx, ecx
mov dword [esp + 0x10], edx
je 0x417164
push ecx
call fcn.004011c0
mov eax, dword [0x54cd10]
add esp, 4
mov dword [0x564e48], 0
mov edx, dword [esp + 0x1c]
lea ecx, [eax*8]
sub ecx, eax
push 0
lea ebx, [edx + 0x19f]
lea edi, [ebp + 0x64]
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov ecx, dword [eax*8 + 0x54dbe0]
push ecx
push 0x6c
push edi
push ebx
call fcn.0047e210
push 0
push 0x669d
push 0x69
push edi
push ebx
call fcn.0047e210
mov eax, dword [0x54cd10]
mov edx, dword [esp + 0x44]
push 0
lea ecx, [eax*8]
lea ebx, [edx + 0x145]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [ebp + 0x96]
lea ecx, [eax*8 + 0x54dc23]
push ecx
push esi
push 1
push edx
push ebx
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x40
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x28]
lea ecx, [eax*8 + 0x54dcb2]
push ecx
push 0x4aa280
push edx
call fcn.004923a7
lea eax, [esp + 0x34]
push 0
push eax
push esi
lea ecx, [ebp + 0xae]
push 1
push ecx
push ebx
call fcn.0041d860
mov esi, dword [esp + 0x38]
add esp, 0x24
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x1c
jbe 0x41729e
push esi
push 0x4a145c
lea edx, [esp + 0x30]
push 0x1c
push edx
call fcn.00492a09
lea eax, [esp + 0x38]
mov byte [esp + 0x54], 0
push eax
call fcn.00411900
add esp, 0x14
cmp eax, 3
jne 0x417274
mov byte [esp + 0x43], 0
add esi, 0x1b
jmp 0x41727c
mov byte [esp + 0x44], 0
add esi, 0x1c
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push 0
push ecx
push 0
push 1
push edi
push ebx
call fcn.0041d860
add esp, 0x18
add edi, 0x18
mov dword [esp + 0x10], edi
jmp 0x417230
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x28]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
push ecx
push 0
push 1
push edx
push ebx
call fcn.0041d860
mov edx, dword [0x54ccfc]
mov eax, dword [0x54cd10]
add esp, 0x18
jmp 0x417972
mov esi, dword [0x564e48]
test esi, esi
je 0x417972
mov eax, dword [0x564e58]
test eax, eax
je 0x417536
mov dword [esp + 0x10], 0xfb
xor ebx, ebx
mov esi, 0x4582e10
mov edi, 0x4bd3e0
mov eax, dword [edi]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 0
push eax
push 0x69
push ecx
push edx
call fcn.0047e210
mov eax, dword [0x54cd10]
add esp, 0x14
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov eax, dword [ebx + eax*8 + 0x54dd74]
test eax, eax
jle 0x417369
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 0
push eax
push 0x6c
push ecx
push edx
call fcn.0047e210
add esp, 0x14
add edi, 8
add ebx, 0x8c
add esi, 0x20
cmp edi, 0x4bd418
jl 0x41731d
mov esi, 0x4582e10
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], esi
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0x69
lea edx, [eax + 0x17]
add eax, 0xffffffe6
push edx
lea edx, [ecx + 0x1a]
push edx
add ecx, 0xffffffe6
push eax
push ecx
call fcn.0044aba0
add esp, 0x14
cmp eax, 1
mov eax, dword [0x54cd10]
jne 0x417510
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0x14]
lea ecx, [edx + ecx*8]
mov edx, dword [ecx + 0x54dd74]
test edx, edx
jle 0x417510
mov edi, dword [ecx + 0x54dd78]
mov eax, dword [esp + 0x1c]
lea esi, [ecx + 0x54dd7c]
lea ecx, [ecx + 0x54ddd1]
push 0
push ecx
push edi
lea edx, [ebp + 0xc3]
lea ebx, [eax + 0x145]
push 1
push edx
push ebx
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + edx*4]
lea edx, [ecx + eax*8 + 0x54ddee]
lea eax, [esp + 0x40]
push edx
push 0x4aa280
push eax
call fcn.004923a7
lea ecx, [esp + 0x4c]
push 0
push ecx
push edi
lea edx, [ebp + 0xd7]
push 1
push edx
push ebx
call fcn.0041d860
add esp, 0x3c
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x1c
jbe 0x4174cb
push esi
push 0x4a145c
lea eax, [esp + 0x30]
push 0x1c
push eax
call fcn.00492a09
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 0
push ecx
call fcn.00411900
add esp, 0x14
cmp eax, 3
jne 0x4174a1
mov byte [esp + 0x43], 0
add esi, 0x1b
jmp 0x4174a9
mov byte [esp + 0x44], 0
add esi, 0x1c
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x28]
push 0
push edx
push 0
push 1
push edi
push ebx
call fcn.0041d860
add esp, 0x18
add edi, 0x18
mov dword [esp + 0x10], edi
jmp 0x41745d
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
push ecx
push 0
push 1
push edx
push ebx
call fcn.0041d860
mov eax, dword [0x54cd10]
mov esi, dword [esp + 0x38]
add esp, 0x18
mov edx, dword [esp + 0x14]
add esi, 0x20
add edx, 0x8c
cmp esi, 0x4582ef0
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], edx
jl 0x41738e
jmp 0x41796c
mov ebx, dword [esp + 0x1c]
lea eax, [ecx + 0x54dc23]
push 0
push eax
lea edi, [ebp + 0x23]
push 0
lea esi, [ebx + 0x145]
push 1
push edi
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x40]
movsx ecx, byte [eax*8 + 0x54dd72]
push ecx
push str._d_
push edx
call fcn.004923a7
lea eax, [esp + 0x4c]
push 0
push eax
push 0
push 1
add ebx, 0x23a
push edi
push ebx
call fcn.0041d860
mov eax, dword [0x54cd10]
push 0
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [ebp + 0x37]
lea ecx, [eax*8 + 0x54dc40]
push ecx
push 6
push 1
push edx
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x54
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x28]
mov ecx, dword [eax*8 + 0x54dbf0]
push ecx
push 0x4aa270
push edx
call fcn.004923a7
lea eax, [esp + 0x34]
push 0
push eax
lea ebx, [ebp + 0x50]
push 0
push 1
push ebx
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x4c]
mov ecx, dword [eax*8 + 0x54dbf4]
push ecx
push 0x4aa268
push edx
call fcn.004923a7
lea ecx, [esp + 0x58]
push 0
push ecx
lea eax, [ebp + 0x64]
push 0
push 1
push eax
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x48
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
lea ecx, [esp + 0x28]
mov eax, dword [edx*8 + 0x54dbf8]
push eax
push 0x4aa260
push ecx
call fcn.004923a7
lea edx, [esp + 0x34]
push 0
push edx
lea eax, [ebp + 0x78]
push 0
push 1
push eax
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x4c]
mov ecx, dword [eax*8 + 0x54dbfc]
push ecx
push 0x4aa258
push edx
call fcn.004923a7
lea ecx, [esp + 0x58]
push 0
push ecx
lea eax, [ebp + 0x8c]
push 0
push 1
push eax
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x48
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
lea ecx, [esp + 0x28]
mov eax, dword [edx*8 + 0x54dc00]
push eax
push 0x4aa250
push ecx
call fcn.004923a7
lea edx, [esp + 0x34]
push 0
push edx
lea eax, [ebp + 0xa0]
push 0
push 1
push eax
push esi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov ecx, dword [eax*8 + 0x54dc04]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x50]
push 0x4aa248
push edx
call fcn.004923a7
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x58]
push 0
push ecx
push 5
lea edi, [eax + 0x186]
push 1
push ebx
push edi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x48
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
lea edx, [eax + ecx*4]
mov eax, 0x66666667
mov ecx, dword [edx*8 + 0x54dc08]
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [esp + 0x28]
shr eax, 0x1f
add edx, eax
push edx
push 0x4aa240
push ecx
call fcn.004923a7
lea edx, [esp + 0x34]
push 0
push edx
push 3
lea eax, [ebp + 0x64]
push 1
push eax
push edi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov ecx, dword [eax*8 + 0x54dc0c]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x50]
push 0x4aa238
push edx
call fcn.004923a7
lea eax, [esp + 0x58]
push 0
push eax
push 6
lea eax, [ebp + 0x78]
push 1
push eax
push edi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x48
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov ecx, dword [eax*8 + 0x54dc10]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x2c]
push 0x4aa230
push edx
call fcn.004923a7
lea eax, [esp + 0x34]
push 0
push eax
push 4
lea eax, [ebp + 0x8c]
push 1
push eax
push edi
call fcn.0041d860
mov eax, dword [0x54cd10]
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
lea edx, [esp + 0x4c]
mov ecx, dword [eax*8 + 0x54dc14]
push ecx
push 0x4aa228
push edx
call fcn.004923a7
lea eax, [esp + 0x58]
push 0
push eax
push 0
lea eax, [ebp + 0xa0]
push 1
push eax
push edi
call fcn.0041d860
mov eax, dword [0x54cd10]
add esp, 0x48
xor edx, edx
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 3
mov edi, dword [ecx + 0x54dc18]
test edi, edi
jle 0x41796c
lea eax, [ebp + 0xbe]
xor ebx, ebx
mov dword [esp + 0x10], eax
lea ecx, [ecx + ebx + 0x54dcc2]
lea edi, [edx + 1]
push ecx
push edi
lea edx, [esp + 0x30]
push 0x4aa21c
push edx
call fcn.004923a7
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x38]
push 0
push eax
push 0
push 1
push ecx
push esi
call fcn.0041d860
mov eax, dword [esp + 0x38]
mov edx, edi
add eax, 0x14
add esp, 0x28
mov dword [esp + 0x10], eax
mov eax, dword [0x54cd10]
add ebx, 0x19
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 3
cmp edx, dword [ecx + 0x54dc18]
jl 0x417906
mov edx, dword [0x54ccfc]
mov ecx, dword [0x45f1bc4]
xor edi, edi
and ecx, 1
mov esi, 0x54c88c
test ecx, ecx
je 0x417990
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esi]
je 0x4179b6
jmp 0x4179a5
test byte [0x45f1bc4], 2
je 0x4179a5
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esi]
je 0x417ab9
add esi, 4
inc edi
cmp esi, 0x54c8c0
jl 0x417982
jmp 0x417b56
lea eax, [edx + edi]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
lea eax, [eax + ecx*4]
shl eax, 3
mov dl, byte [eax + 0x54dc21]
movsx ecx, byte [eax + 0x54dd71]
test dl, dl
je 0x417a06
mov edx, dword [ecx*4 + 0x54c87c]
mov byte [eax + 0x54dc21], 0
dec edx
mov dword [ecx*4 + 0x54c87c], edx
mov edx, dword [eax + 0x54dbe8]
sub dword [0x54c908], edx
jmp 0x417b56
mov edi, dword [eax + 0x54dbe8]
test edi, edi
jle 0x417aa5
mov esi, dword [ecx*4 + 0x54c87c]
mov ebx, dword [ecx*4 + 0x54c900]
lea edx, [ecx*4 + 0x54c87c]
cmp ebx, esi
jle 0x417a70
mov ecx, dword [0x54c908]
mov ebx, dword [0x462bee8]
add edi, ecx
cmp edi, ebx
jg 0x417a5c
inc esi
mov byte [eax + 0x54dc21], 1
mov dword [edx], esi
mov edx, dword [eax + 0x54dbe8]
add ecx, edx
mov dword [0x54c908], ecx
jmp 0x417b56
push 6
push 0x4aa210
call fcn.004115c0
add esp, 8
jmp 0x417b56
test ecx, ecx
jne 0x417a88
push 6
push 0x4aa1fc
call fcn.004115c0
add esp, 8
jmp 0x417b56
cmp ecx, 1
jne 0x417b56
push 6
push 0x4aa1e4
call fcn.004115c0
add esp, 8
jmp 0x417b56
push 6
push 0x4aa1d0
call fcn.004115c0
add esp, 8
jmp 0x417b56
lea ecx, [edx + edi]
lea esi, [ecx*8]
sub esi, ecx
lea esi, [esi + esi*2]
lea esi, [ecx + esi*2]
lea esi, [ecx + esi*4]
shl esi, 3
mov bl, byte [esi + 0x54dc22]
test bl, bl
jne 0x417b0c
mov eax, dword [esi + 0x54dc1c]
lea ecx, [esp + 0x28]
push eax
push str.D_d
push ecx
call fcn.004923a7
mov eax, dword [0x461b404]
lea edx, [esp + 0x34]
push edx
push eax
call fcn.00490560
mov edx, dword [0x54ccfc]
add esp, 0x14
jmp 0x417b44
cmp byte [esi + 0x54dd71], 1
jne 0x417b44
cmp eax, ecx
je 0x417b44
mov eax, dword [0x564e48]
test eax, eax
je 0x417b3b
push eax
call fcn.004011c0
mov edx, dword [0x54ccfc]
add esp, 4
mov dword [0x564e48], 0
lea ecx, [edx + edi]
mov dword [0x4aa044], ecx
add edx, edi
mov dword [0x564e58], 0
mov dword [0x54cd10], edx
mov edx, dword [0x462bee8]
lea eax, [esp + 0x28]
push edx
push 0x4aa1c4
push eax
call fcn.004923a7
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0x34]
push 0
push ecx
lea esi, [ebp + 0x150]
push 0
push 1
lea edx, [edi + 0x17c]
push esi
push edx
call fcn.0041d860
mov eax, dword [0x54c908]
lea ecx, [esp + 0x4c]
push eax
push 0x4aa1c4
push ecx
call fcn.004923a7
lea edx, [esp + 0x58]
push 0
push edx
push 0
push 1
lea eax, [edi + 0x20d]
push esi
push eax
call fcn.0041d860
mov eax, dword [0x4aa044]
add esp, 0x48
cmp eax, 0xffffffff
jle 0x417c09
lea ecx, [eax*8]
push 0
sub ecx, eax
add ebp, 0xe6
add edi, 0x208
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea eax, [eax + edx*4]
mov ecx, dword [eax*8 + 0x54dbe0]
push ecx
push ebp
push edi
call fcn.00449510
add esp, 0x10
mov dword [0x564e48], eax
mov dword [0x4aa044], 0xffffffff
mov edx, dword [0x564e38]
push 1
push 0x89a8
push 0x68
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
push ecx
push edx
call fcn.0047e210
add esp, 0x14
xor ebx, ebx
mov esi, dword [esp + 0x52c]
cmp esi, ebx
je 0x418234
lea eax, [esp + 0x28]
push eax
push 0x3ff
push 1
push 0x7c
push esi
call fcn.00489f70
mov al, byte [esp + 0x3c]
add esp, 0x14
cmp al, 0x42
jne 0x417da1
lea ecx, [esp + 0x28]
push ecx
push 0x3ff
push 2
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x3c]
push edx
call fcn.004929fe
add esp, 0x18
cmp eax, ebx
jle 0x418234
mov edi, 0x54dd71
mov ebx, 4
mov dword [esp + 0x18], eax
lea eax, [esp + 0x28]
lea ecx, [ebx - 1]
push eax
push 0x3ff
push ecx
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x3c]
push edx
call fcn.004929fe
mov byte [edi], al
lea eax, [esp + 0x40]
push eax
push 0x3ff
push ebx
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x54]
lea ebp, [edi - 0x14e]
push ecx
call fcn.004929fe
lea edx, [esp + 0x58]
mov dword [ebp - 0x3b], eax
push edx
lea eax, [ebx + 1]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
add esp, 0x44
lea ecx, [esp + 0x28]
push 0x1d
push ecx
push ebp
call fcn.004924c0
lea edx, [esp + 0x34]
lea eax, [ebx + 2]
push edx
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
mov al, byte [edi]
add esp, 0x20
test al, al
jne 0x417d38
lea ecx, [esp + 0x28]
push ecx
call fcn.004929fe
add esp, 4
mov dword [edi - 0x18d], eax
jmp 0x417d4e
lea edx, [esp + 0x28]
push 0x1d
lea eax, [edi - 0x131]
push edx
push eax
call fcn.004924c0
add esp, 0xc
lea ecx, [esp + 0x28]
lea edx, [ebx + 3]
push ecx
push 0x3ff
push edx
push 0x7c
push esi
call fcn.00489f70
lea eax, [esp + 0x3c]
push eax
call fcn.004929fe
mov dword [edi - 0x155], eax
mov eax, dword [esp + 0x30]
mov byte [edi - 0x151], 1
add esp, 0x18
add ebx, 5
add edi, 0x568
dec eax
mov dword [esp + 0x18], eax
jne 0x417c96
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x518
ret
cmp al, 0x44
jne 0x418234
lea ecx, [esp + 0x28]
push ecx
push 0x3ff
push 2
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x3c]
push edx
call fcn.004929fe
add esp, 0x18
mov dword [esp + 0x18], eax
xor edx, edx
mov ecx, 0x54dc1c
cmp byte [ecx + 4], 0
je 0x417ddf
cmp dword [ecx], eax
je 0x417df0
add ecx, 0x568
inc edx
cmp ecx, 0x55483c
jl 0x417dd5
jmp 0x417df6
mov eax, edx
mov dword [esp + 0x18], eax
cmp eax, ebx
jl 0x418234
cmp eax, 0x14
jge 0x418234
lea ecx, [eax*8]
sub ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [eax + ecx*2]
lea edi, [eax + edx*4]
shl edi, 3
mov al, byte [edi + 0x54dd71]
test al, al
jne 0x417ed8
lea eax, [esp + 0x28]
push eax
push 0x3ff
push 3
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x3c]
push 0x55
lea edx, [edi + 0x54dc5d]
push ecx
push edx
call fcn.004924c0
lea eax, [esp + 0x48]
push eax
push 0x3ff
push 4
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x5c]
push 0x10
lea edx, [edi + 0x54dcb2]
push ecx
push edx
call fcn.004924c0
add esp, 0x40
lea eax, [esp + 0x28]
push eax
push 0x3ff
push 5
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x3c]
push ecx
call fcn.004929fe
lea edx, [esp + 0x40]
mov dword [edi + 0x54dbec], eax
push edx
push 0x3ff
push 6
push 0x7c
push esi
call fcn.00489f70
lea eax, [esp + 0x54]
push eax
call fcn.004929fe
add esp, 0x30
mov dword [edi + 0x54dbe0], eax
mov byte [edi + 0x54dc22], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x518
ret
lea ecx, [esp + 0x28]
push ecx
push 0x3ff
push 3
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x3c]
push edx
call fcn.004929fe
mov ebx, eax
add esp, 0x18
xor ebp, ebp
test ebx, ebx
jle 0x417f45
lea eax, [edi + 0x54dcc2]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x28]
lea edx, [ebp + 4]
push ecx
push 0x3ff
push edx
push 0x7c
push esi
call fcn.00489f70
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x3c]
push 0x19
push eax
push ecx
call fcn.004924c0
mov ecx, dword [esp + 0x30]
add esp, 0x20
inc ebp
add ecx, 0x19
cmp ebp, ebx
mov dword [esp + 0x10], ecx
jl 0x417f0b
lea edx, [esp + 0x28]
lea eax, [ebp + 4]
push edx
push 0x3ff
push eax
push 0x7c
push esi
mov dword [edi + 0x54dc18], ebx
call fcn.00489f70
lea ecx, [esp + 0x3c]
push ecx
call fcn.004929fe
lea edx, [esp + 0x40]
mov dword [edi + 0x54dbf0], eax
push edx
lea eax, [ebp + 5]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x54]
push ecx
call fcn.004929fe
lea edx, [esp + 0x58]
mov dword [edi + 0x54dbf4], eax
push edx
lea eax, [ebp + 6]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
add esp, 0x44
lea ecx, [esp + 0x28]
push ecx
call fcn.004929fe
lea edx, [esp + 0x2c]
mov dword [edi + 0x54dbf8], eax
push edx
lea eax, [ebp + 7]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x40]
push ecx
call fcn.004929fe
lea edx, [esp + 0x44]
mov dword [edi + 0x54dbfc], eax
push edx
lea eax, [ebp + 8]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x58]
push ecx
call fcn.004929fe
lea edx, [esp + 0x5c]
mov dword [edi + 0x54dc00], eax
push edx
lea eax, [ebp + 9]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
add esp, 0x48
lea ecx, [esp + 0x28]
push ecx
call fcn.004929fe
lea edx, [esp + 0x2c]
mov dword [edi + 0x54dc04], eax
push edx
lea eax, [ebp + 0xa]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x40]
push ecx
call fcn.004929fe
lea edx, [esp + 0x44]
mov dword [edi + 0x54dc08], eax
push edx
lea eax, [ebp + 0xb]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x58]
push ecx
call fcn.004929fe
lea edx, [esp + 0x5c]
mov dword [edi + 0x54dc0c], eax
push edx
lea eax, [ebp + 0xc]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
add esp, 0x48
lea ecx, [esp + 0x28]
push ecx
call fcn.004929fe
lea edx, [esp + 0x2c]
mov dword [edi + 0x54dc10], eax
push edx
lea eax, [ebp + 0xd]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x40]
push ecx
call fcn.004929fe
lea edx, [esp + 0x44]
mov dword [edi + 0x54dc14], eax
push edx
lea eax, [ebp + 0xe]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [esp + 0x58]
push ecx
call fcn.004929fe
lea edx, [esp + 0x5c]
mov byte [edi + 0x54dd72], al
push edx
lea eax, [ebp + 0xf]
push 0x3ff
push eax
push 0x7c
push esi
call fcn.00489f70
add esp, 0x48
lea ecx, [esp + 0x28]
push ecx
call fcn.004929fe
mov dword [edi + 0x54dbe0], eax
mov eax, dword [0x564e48]
add esp, 4
test eax, eax
je 0x41813e
push eax
call fcn.004011c0
add esp, 4
mov dword [0x564e48], 0
mov edx, dword [esp + 0x18]
add ebp, 0x11
mov dword [0x4aa044], edx
mov dword [esp + 0x18], 7
lea eax, [esp + 0x28]
lea ecx, [ebp - 1]
push eax
push 0x3ff
push ecx
push 0x7c
push esi
call fcn.00489f70
add esp, 0x14
test eax, eax
jne 0x41821b
lea edx, [esp + 0x28]
push edx
call fcn.004929fe
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx + ecx*4]
lea ebx, [edi + eax*4]
lea ecx, [ebx + 0x54ddd1]
push ecx
push 0x1c
push ebp
push 0x7c
push esi
call fcn.00489f70
lea edx, [ebx + 0x54dd7c]
lea eax, [ebp + 1]
push edx
push 0x54
push eax
push 0x7c
push esi
call fcn.00489f70
lea ecx, [ebx + 0x54ddee]
lea edx, [ebp + 2]
push ecx
push 0xf
push edx
push 0x7c
push esi
call fcn.00489f70
add esp, 0x40
lea eax, [esp + 0x28]
lea ecx, [ebp + 3]
push eax
push 0x3ff
push ecx
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x3c]
push edx
call fcn.004929fe
mov dword [ebx + 0x54dd78], eax
lea eax, [esp + 0x40]
push eax
lea ecx, [ebp + 4]
push 0x3ff
push ecx
push 0x7c
push esi
call fcn.00489f70
lea edx, [esp + 0x54]
push edx
call fcn.004929fe
add esp, 0x30
mov dword [ebx + 0x54dd74], eax
mov eax, dword [esp + 0x18]
add ebp, 6
dec eax
mov dword [esp + 0x18], eax
jne 0x418153
mov byte [edi + 0x54dc22], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x518
ret