Function at 0x5442d0
Capabilities:
Check for software breakpoints
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x710]
cmp eax, dword [ecx + 8]
jbe 0x54657a
sub esp, 0x790
mov eax, dword [esp + 0x79c]
mov dword [esp], eax
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0x7a0]
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0x798]
test ecx, ecx
jne 0x544334
xor ecx, ecx
mov eax, dword [esp + 0x794]
test byte [eax], al
lea edx, [eax + 0x94]
mov dword [esp + 0x39c], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.004dee00
lea edi, [esp + 0x48c]
xor eax, eax
call fcn.00465fd7
nop
lea edi, [esp + 0x48c]
lea esi, [0x78799c]
call fcn.00466406
lea edi, [esp + 0x3cc]
call fcn.00465fe8
mov ecx, dword [esp + 0x794]
mov dword [esp], ecx
lea edx, [esp + 0x48c]
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0xe8]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov byte [esp + 0x4c], 0
call fcn.00543d50
lea edi, [esp + 0x410]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x39c]
mov dword [esp], ecx
call fcn.004deee0
movzx eax, byte [esp + 0x28]
lea edi, [esp + 0x410]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x3ec]
lea esi, [esp + 0x410]
call fcn.004664a6
mov ecx, dword [esp + 0x39c]
mov edx, dword [esp + 0x794]
xor ebx, ebx
jmp 0x5444f0
mov dword [esp + 0xe4], eax
lea edi, [esp + 0x410]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x39c]
mov dword [esp], ecx
call fcn.004deee0
movzx eax, byte [esp + 0x28]
lea edi, [esp + 0x410]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x3ec]
lea esi, [esp + 0x410]
call fcn.004664a6
mov ecx, dword [esp + 0x39c]
mov edx, dword [esp + 0x794]
mov ebx, dword [esp + 0xe4]
test al, al
je 0x54536f
mov ebp, dword [esp + 0x3f8]
mov eax, ebx
mov ebx, dword [esp + 0x3fc]
mov esi, ebp
mov ebp, dword [esp + 0x400]
test ebx, ebx
jbe 0x546570
mov dword [esp + 0xe4], eax
mov edi, ebp
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, 0xd2
xchg ebp, eax
ja 0x544cc1
xchg ebp, eax
cmp al, 0xcf
xchg ebp, eax
ja 0x54482b
xchg ebp, eax
cmp al, 0xcb
xchg ebp, eax
je 0x54467b
xchg ebp, eax
cmp al, 0xcc
xchg ebp, eax
jne 0x5445c2
mov ebx, dword [edx + 0x144]
mov ebp, dword [edx + 0x140]
mov esi, ebp
lea ebp, [ebx - 1]
cmp ebx, ebp
jbe 0x546567
lea ebx, [ebx + ebx*2]
shl ebx, 4
lea esi, [esi + ebx - 0x30]
lea edi, [esp + 0x2d4]
call fcn.00466488
mov ecx, dword [edx + 0x148]
cmp ecx, ebp
jb 0x54655e
mov dword [edx + 0x144], ebp
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x2d4]
call fcn.004664c4
lea edi, [esp + 0x48c]
lea esi, [esp + 0x2ec]
call fcn.004664c4
mov ecx, dword [esp + 0x39c]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xcf
xchg ebp, eax
jne 0x54448f
mov byte [esp + 0x4c0], 2
mov ebx, dword [esp + 0x3fc]
mov ebp, dword [esp + 0x3f8]
mov esi, dword [esp + 0x404]
mov edi, edx
mov edx, dword [esp + 0x408]
cmp edx, 1
jbe 0x546552
mov dword [esp + 0x3ac], ebp
mov edx, dword [esi + 8]
mov ebp, dword [esi + 0xc]
test edx, edx
je 0x544652
mov dword [esp + 0x8c], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x3c8], edx
mov esi, dword [esi]
lea edx, [0x6dc500]
cmp esi, edx
jne 0x54653c
cmp ebx, 1
jbe 0x546530
mov ebx, dword [esp + 0x3ac]
movzx ebx, byte [ebx + 1]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x3c8]
jmp 0x54465a
xor ebx, ebx
xor edx, edx
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x4c4], esi
mov dword [esp + 0x4c8], edx
mov dword [esp + 0x4cc], ebp
mov byte [esp + 0x4d0], bl
jmp 0x54448f
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.004deca0
movzx eax, byte [esp + 0x24]
lea edi, [esp + 0x23c]
lea esi, [esp + 0xc]
call fcn.004664c4
lea edi, [esp + 0x1ac]
lea esi, [esp + 0x23c]
call fcn.004664c4
test al, al
je 0x54478a
lea edi, [esp + 0x304]
xor eax, eax
call fcn.00465fe4
lea edi, [esp + 0x304]
lea esi, [esp + 0x4a8]
call fcn.004664c4
lea edi, [esp + 0x31c]
lea esi, [esp + 0x48c]
call fcn.004664c4
mov ecx, dword [esp + 0x794]
mov edx, dword [ecx + 0x140]
mov ebx, dword [ecx + 0x148]
mov ebp, dword [ecx + 0x144]
inc ebp
cmp ebx, ebp
jae 0x54476d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6b19c0]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x794]
mov dword [ebx + 0x148], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54475a
mov dword [ebx + 0x140], eax
jmp 0x544765
lea edi, [ebx + 0x140]
call fcn.00465d80
mov ebp, ecx
mov edx, eax
xor eax, eax
mov ecx, ebx
mov dword [ecx + 0x144], ebp
lea ebx, [ebp + ebp*2]
shl ebx, 4
lea edi, [edx + ebx - 0x30]
lea esi, [esp + 0x304]
call fcn.00466488
lea edi, [esp]
lea esi, [esp + 0x4a8]
call fcn.004664c4
lea edi, [esp + 0x18]
lea esi, [esp + 0x1ac]
call fcn.004664c4
call fcn.004cac20
lea edi, [esp + 0x23c]
lea esi, [esp + 0x30]
call fcn.004664c4
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x23c]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x48c]
call fcn.004664c4
lea edi, [esp + 0x18]
lea esi, [esp + 0x1ac]
call fcn.004664c4
call fcn.004cac20
lea edi, [esp + 0x23c]
lea esi, [esp + 0x30]
call fcn.004664c4
lea edi, [esp + 0x48c]
lea esi, [esp + 0x23c]
call fcn.004664c4
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xd0
xchg ebp, eax
jne 0x544b5f
lea edi, [esp + 0x4f0]
lea esi, [esp + 0x48c]
call fcn.00466406
cmp byte [esp + 0x524], 2
jne 0x544943
mov eax, dword [esp + 0x4c4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
sub ecx, dword [eax + 0x10]
sub edx, dword [eax + 0x14]
mov dword [esp + 0x90], edx
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x794]
mov dword [esp], ecx
lea edx, [esp + 0x4f0]
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xec]
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], 0
mov byte [esp + 0x4c], 0
call fcn.00543d50
mov eax, dword [esp + 0x508]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 0x30]
mov dword [esp + 0xdc], edx
mov ebx, dword [eax + 0x34]
mov dword [esp + 0xd8], ebx
mov eax, dword [eax + 0x38]
mov dword [esp + 0xd4], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
je 0x54498e
mov eax, 1
jmp 0x5449ad
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov ecx, dword [esp + 0xd4]
mov dword [esp + 4], ecx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
je 0x5449c4
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
mov edx, dword [esp + 0x508]
test edx, edx
jne 0x544b39
movzx ebx, byte [esp + 0x524]
test bl, bl
jne 0x544b39
cmp byte [esp + 0x53b], 0xff
jne 0x544b39
movzx eax, byte [esp + 0x538]
mov dword [esp + 0xd0], eax
movzx ecx, byte [esp + 0x539]
mov dword [esp + 0xcc], ecx
movzx edx, byte [esp + 0x53a]
mov dword [esp + 0xc8], edx
mov dword [esp], 0xff
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], 0x437f0000
call fcn.0044e470
mov eax, dword [esp + 8]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xd0]
lea edx, [0x92cae0]
mov ecx, dword [edx + ecx*4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0xcc]
lea edx, [0x92cae0]
mov ecx, dword [edx + ecx*4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 4], ecx
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0xc8]
lea edx, [0x92cae0]
mov ecx, dword [edx + ecx*4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 4], ecx
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x794]
mov dword [edx + 0x118], ecx
mov ecx, dword [esp + 0xd8]
mov dword [edx + 0x11c], ecx
mov dword [edx + 0x120], eax
mov dword [edx + 0x124], 0x3f800000
mov byte [edx + 0x114], 1
nop
mov dword [edx + 0x180], 0
mov dword [edx + 0x18c], 0
mov dword [edx + 0x198], 0
mov dword [edx + 0x1a4], 0
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
mov ebx, dword [esp + 0x794]
lea ebp, [ebx + 0x188]
mov dword [esp + 0x3c4], ebp
mov eax, dword [ebx + 0x18c]
mov dword [esp + 0xd0], eax
jmp 0x5460c4
xchg ebp, eax
cmp al, 0xd1
xchg ebp, eax
jne 0x544bc1
mov byte [esp + 0x4c0], 0
mov ebx, dword [esp + 0x3f8]
mov ebp, dword [esp + 0x400]
cmp ebp, 5
jb 0x5460a7
movzx ebp, byte [ebx + 1]
movzx esi, byte [ebx + 2]
movzx edx, byte [ebx + 3]
movzx ecx, byte [ebx + 4]
xchg ebp, eax
mov byte [esp + 0x4d4], al
xchg ebp, eax
xchg esi, eax
mov byte [esp + 0x4d5], al
xchg esi, eax
mov byte [esp + 0x4d6], dl
mov byte [esp + 0x4d7], cl
mov ecx, dword [esp + 0x39c]
jmp 0x54448f
mov byte [esp + 0x4c0], 1
mov eax, dword [esp + 0x3f8]
mov ecx, dword [esp + 0x3fc]
mov edx, dword [esp + 0x400]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00549960
lea edi, [esp + 0x194]
lea esi, [esp + 0xc]
call fcn.004664c4
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
mov dword [esp + 0x4d8], eax
mov dword [esp + 0x4dc], ecx
mov eax, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x4e0], eax
mov dword [esp + 0x4e4], ecx
movzx eax, byte [esp + 0x19c]
movzx ecx, byte [esp + 0x19d]
movzx edx, byte [esp + 0x19e]
movzx ebx, byte [esp + 0x19f]
mov byte [esp + 0x4e8], al
mov byte [esp + 0x4e9], cl
mov byte [esp + 0x4ea], dl
mov byte [esp + 0x4eb], bl
movzx eax, byte [esp + 0x1a8]
movzx ecx, byte [esp + 0x1a9]
movzx edx, byte [esp + 0x1aa]
movzx ebx, byte [esp + 0x1ab]
mov byte [esp + 0x4ec], al
mov byte [esp + 0x4ed], cl
mov byte [esp + 0x4ee], dl
mov byte [esp + 0x4ef], bl
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xda
xchg ebp, eax
ja 0x5450d2
xchg ebp, eax
cmp al, 0xd7
xchg ebp, eax
jne 0x544e2e
nop
dec ebx
cmp ebx, 3
jbe 0x54609b
lea ebx, [edi - 1]
neg ebx
sar ebx, 0x1f
and ebx, 1
mov ebx, dword [esi + ebx]
lea edi, [esp + 0x17c]
lea esi, [esp + 0x4a8]
call fcn.004664c4
mov ecx, dword [edx + 0x10c]
mov ebp, ebx
sub ebx, ecx
mov ecx, dword [edx + 0x110]
mov esi, edx
mov edx, dword [edx + 0x108]
mov edi, ebx
inc ebx
test ebx, ebx
jle 0x544dfb
mov dword [esp + 0xe0], ebp
lea eax, [ebp + 1]
cmp ecx, eax
jae 0x544d6c
mov dword [esp + 0xd0], edi
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
lea eax, [0x6e1f40]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0xd0]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x3c0], edx
mov dword [esp + 0xcc], eax
sub eax, edi
lea eax, [eax + eax*2]
lea eax, [edx + eax*8 - 0x18]
mov dword [esp], eax
lea eax, [edi + edi*2]
shl eax, 3
add eax, 0x18
mov dword [esp + 4], eax
call fcn.00466510
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x794]
mov dword [ecx + 0x10c], eax
mov eax, dword [esp + 0xd0]
mov dword [ecx + 0x110], eax
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x544dd9
mov edx, dword [esp + 0x3c0]
mov dword [ecx + 0x108], edx
jmp 0x544deb
lea edi, [ecx + 0x108]
mov eax, dword [esp + 0x3c0]
call fcn.00465d80
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0xe0]
mov esi, ecx
mov ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x108]
cmp ebp, ecx
jae 0x546094
lea ecx, [ebp + ebp*2]
lea edi, [edx + ecx*8]
lea esi, [esp + 0x17c]
call fcn.004664c4
mov ecx, dword [esp + 0x39c]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xd8
xchg ebp, eax
jne 0x544ed4
nop
lea edi, [esp + 0x48c]
lea esi, [0x78799c]
call fcn.00466406
mov ecx, dword [esp + 0x3fc]
mov ebx, dword [esp + 0x3f8]
mov ebp, dword [esp + 0x400]
test ecx, ecx
jbe 0x54608b
cmp byte [ebx], 0xd8
jne 0x546073
dec ecx
cmp ecx, 3
jbe 0x546069
mov ecx, dword [edx + 0x10c]
mov edx, dword [edx + 0x108]
dec ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
mov ebx, dword [ebp + ebx]
cmp ebx, ecx
jae 0x546062
lea ecx, [ebx + ebx*2]
lea ecx, [edx + ecx*8]
lea edi, [esp + 0x4a8]
mov esi, ecx
call fcn.004664c4
lea edi, [esp + 0x48c]
lea esi, [esp + 0x4a8]
call fcn.004664c4
mov ecx, dword [esp + 0x39c]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xda
xchg ebp, eax
jne 0x54448f
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.00465feb
mov ecx, dword [esp + 0x3f8]
mov edx, dword [esp + 0x3fc]
mov ebx, dword [esp + 0x400]
lea ebp, [esp + 0xf0]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004dec20
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xd0], edx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0xcc], ebx
mov ebp, dword [esp + 0xfc]
mov dword [esp + 0xc8], ebp
mov dword [esp], ecx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0xe0], ecx
mov edx, dword [esp + 0xd0]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0xdc], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0xd8], ecx
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 0x3cc]
mov edx, dword [esp + 0x3d0]
mov ebx, dword [esp + 0x3d4]
mov ebp, dword [esp + 0x3d8]
mov dword [esp + 0x3bc], ebp
mov esi, dword [esp + 0x3dc]
mov eax, esi
mov esi, dword [esp + 0x3e0]
mov edi, esi
mov esi, dword [esp + 0x3e4]
mov dword [esp + 0xd4], esi
mov esi, dword [esp + 0x3e8]
mov dword [esp + 0xc4], esi
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0x794]
mov dword [esp], ebp
lea ebp, [esp + 0x48c]
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0xe8]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x48], ecx
mov byte [esp + 0x4c], 1
call fcn.00543d50
mov dword [esp + 0x3cc], 0
mov dword [esp + 0x3d0], 0
mov dword [esp + 0x3d4], 0
mov ecx, dword [esp + 0x39c]
xor eax, eax
jmp 0x54448f
xchg ebp, eax
cmp al, 0xdb
xchg ebp, eax
je 0x5452ec
xchg ebp, eax
cmp al, 0xdd
xchg ebp, eax
jne 0x5452b5
dec ebx
cmp ebx, 7
jbe 0x546056
lea edx, [edi - 1]
neg edx
sar edx, 0x1f
and edx, 1
movzx ebx, byte [esi + edx]
mov dword [esp + 0xe0], ebx
movzx ebp, byte [esi + edx + 1]
mov dword [esp + 0xdc], ebp
movzx ebx, byte [esi + edx + 2]
mov dword [esp + 0xd8], ebx
movzx ebx, byte [esi + edx + 3]
mov dword [esp + 0xd4], ebx
movzx ebx, byte [esi + edx + 4]
mov dword [esp + 0xc4], ebx
movzx ebx, byte [esi + edx + 5]
mov dword [esp + 0xc0], ebx
movzx ebx, byte [esi + edx + 6]
mov dword [esp + 0xbc], ebx
movzx edx, byte [esi + edx + 7]
mov dword [esp + 0xb8], edx
lea edi, [esp + 0x410]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x39c]
mov dword [esp], ecx
call fcn.004deee0
movzx ecx, byte [esp + 0x28]
mov byte [esp + 0x8b], cl
lea edi, [esp + 0x410]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x3ec]
lea esi, [esp + 0x410]
call fcn.004664a6
mov ecx, dword [esp + 0xdc]
mov edx, ecx
shl ecx, 8
mov ebx, dword [esp + 0xe0]
or ebx, ecx
shr edx, 0x18
mov ecx, dword [esp + 0xd8]
mov ebp, ecx
shr ecx, 0x10
or edx, ecx
shl ebp, 0x10
or ebx, ebp
mov ecx, dword [esp + 0xd4]
mov ebp, ecx
shr ecx, 8
or ecx, edx
shl ebp, 0x18
or ebp, ebx
mov edx, dword [esp + 0xc4]
or edx, ecx
mov ecx, dword [esp + 0xc0]
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0xbc]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0xb8]
shl ecx, 0x18
or ecx, edx
movzx edx, byte [esp + 0x8b]
test dl, dl
je 0x54603e
mov edx, dword [esp + 0x3fc]
mov ebx, dword [esp + 0x3f8]
mov esi, dword [esp + 0x400]
cmp edx, 1
jb 0x546032
dec esi
mov eax, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add esi, ebx
mov dword [esp + 0x3cc], esi
dec edx
mov dword [esp + 0x3d0], edx
mov dword [esp + 0x3d4], eax
mov edx, dword [esp + 0x3ec]
mov esi, dword [esp + 0x3f0]
mov eax, ecx
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0x3d8], edx
mov dword [esp + 0x3dc], esi
mov dword [esp + 0x3e0], ecx
mov dword [esp + 0x3e4], ebp
mov dword [esp + 0x3e8], eax
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
xchg ebp, eax
cmp al, 0xde
xchg ebp, eax
jne 0x54448f
cmp ebx, 4
jbe 0x546026
dec ebx
cmp ebx, 3
jbe 0x54601a
lea ebp, [edi - 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
mov ebx, dword [esi + ebp]
mov eax, ebx
jmp 0x54448f
mov eax, dword [esp + 0x4a4]
test byte [eax], al
lea esi, [eax + 0x50]
lea edi, [esp + 0x224]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x224]
call fcn.004664c4
lea edi, [esp + 0x18]
lea esi, [esp + 0x48c]
call fcn.004664c4
call fcn.004cac20
lea edi, [esp + 0x23c]
lea esi, [esp + 0x30]
call fcn.004664c4
lea edi, [esp + 0x48c]
lea esi, [esp + 0x23c]
call fcn.004664c4
mov eax, dword [esp + 0x4a4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x4a4], eax
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
mov ebx, dword [edx + 0x198]
mov dword [esp + 0xd0], ebx
xor eax, eax
jmp 0x545398
mov ebp, dword [esp + 0xa4]
inc ebp
mov ebx, dword [esp + 0xd0]
mov edx, dword [esp + 0x794]
mov eax, ebp
cmp eax, ebx
jge 0x545908
mov ebp, dword [edx + 0x194]
mov ecx, dword [edx + 0x198]
cmp eax, ecx
jae 0x546015
mov dword [esp + 0x3b8], ebp
mov dword [esp + 0xa4], eax
mov ecx, ebx
imul ebx, eax, 0x7c
mov dword [esp + 0xcc], ebx
lea esi, [ebp + ebx]
mov dword [esp + 0x3a8], esi
xor edi, edi
jmp 0x545940
test edx, edx
je 0x545578
imul eax, edx, 0x6c
lea esi, [eax + ebx - 0x48]
mov dword [esp + 0x3c0], esi
lea edi, [esp + 0x164]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x164]
call fcn.004664c4
call fcn.00548f70
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc8], ecx
lea edi, [esp + 0x23c]
lea esi, [esp + 0x18]
call fcn.004664c4
lea edi, [esp + 0x164]
lea esi, [esp + 0x23c]
call fcn.004664c4
mov edi, dword [esp + 0x3c0]
lea esi, [esp + 0x164]
call fcn.004664c4
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x3b8]
mov dword [edx + ecx + 0xc], eax
mov ebx, dword [esp + 0xc8]
mov dword [edx + ecx + 0x10], ebx
neg eax
mov dword [esp], eax
call fcn.0044e7d0
mov eax, dword [esp + 0xc8]
neg eax
mov ecx, dword [esp + 4]
mov dword [esp + 0xec], ecx
mov dword [esp], eax
call fcn.0044e7d0
mov eax, dword [esp + 0x3b8]
mov ecx, dword [esp + 0xcc]
lea esi, [ecx + eax + 0x14]
mov dword [esp + 0x3c0], esi
mov edx, dword [esp + 4]
mov dword [esp + 0xe8], edx
lea edi, [esp + 0x1f4]
call fcn.004664c4
lea edi, [esp + 0x11c]
xor eax, eax
call fcn.00465fea
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x1fc]
mov dword [esp], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 4], ecx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x200]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0x130], eax
mov edi, dword [esp + 0x3c0]
lea esi, [esp + 0x11c]
call fcn.004664c4
mov esi, dword [esp + 0x3a8]
lea edi, [esp + 0x698]
call fcn.004663ca
mov eax, dword [esp + 0x794]
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0x698]
call fcn.004663ca
call fcn.00546590
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x3b8]
mov dword [ebx + edx + 0x70], eax
mov dword [ebx + edx + 0x6c], ecx
mov dword [ebx + edx + 0x78], 0xffffffff
lea eax, [ebx + edx + 0x2c]
cmp byte [eax], 2
je 0x5455e4
mov eax, dword [esp + 0x7a4]
jmp 0x545380
mov eax, dword [esp + 0x7a4]
mov ecx, dword [eax + 4]
mov dword [ebx + edx + 0x78], ecx
mov ecx, dword [ebx + edx + 0xc]
mov ebp, dword [ebx + edx + 0x10]
mov dword [esp + 0xc8], ebp
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 0x3b8]
mov ecx, dword [esp + 0xcc]
lea esi, [ecx + eax + 0x14]
mov edx, dword [esp + 4]
mov dword [esp + 0xe8], edx
lea edi, [esp + 0x1dc]
call fcn.004664c4
lea edi, [esp + 0x104]
xor eax, eax
call fcn.00465fea
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x1e4]
mov dword [esp], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 4], ecx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0x118], eax
lea edi, [esp + 0x14c]
lea esi, [esp + 0x104]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x104]
call fcn.004664c4
call fcn.00548f70
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xb4], ecx
lea edi, [esp + 0x23c]
lea esi, [esp + 0x18]
call fcn.004664c4
lea edi, [esp + 0x14c]
lea esi, [esp + 0x23c]
call fcn.004664c4
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x3b8]
mov ebx, dword [edx + ecx + 0x60]
mov ebp, dword [edx + ecx + 0x64]
mov esi, dword [edx + ecx + 0x68]
mov edi, dword [edx + ecx + 0x5c]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.004dd9f0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xac], ebx
lea edi, [esp + 0x434]
mov ebp, eax
xor eax, eax
call fcn.00465fda
mov ecx, dword [esp + 0x3b8]
mov esi, dword [esp + 0xcc]
mov edi, dword [esi + ecx + 0x34]
mov eax, dword [esi + ecx + 0x38]
movzx ebx, byte [ecx + esi + 0x3c]
mov ecx, dword [ecx + esi + 0x30]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x438], edi
mov dword [esp + 0x43c], eax
mov byte [esp + 0x440], bl
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x474], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x478], ecx
sub ebp, eax
mov dword [esp + 0x464], ebp
mov ebx, dword [esp + 0xb0]
sub ebx, ecx
mov dword [esp + 0x468], ebx
sub edx, eax
mov dword [esp + 0x46c], edx
mov eax, dword [esp + 0xac]
sub eax, ecx
mov dword [esp + 0x470], eax
lea edi, [esp + 0x44c]
mov eax, esi
lea esi, [esp + 0x14c]
call fcn.004664c4
mov ecx, dword [esp + 0x3b8]
mov edx, dword [eax + ecx + 0x34]
mov eax, dword [eax + ecx + 0x38]
mov dword [esp + 0x444], edx
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x7a4]
mov ecx, dword [eax + 4]
inc ecx
mov edx, dword [eax]
mov ebx, dword [eax + 8]
cmp ebx, ecx
jae 0x5458ba
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6c9280]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x7a4]
mov dword [edi + 8], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5458b1
mov dword [edi], eax
jmp 0x5458b6
call fcn.00465d80
mov edx, eax
mov eax, edi
mov dword [eax + 4], ecx
imul ecx, ecx, 0x58
lea edi, [ecx + edx - 0x58]
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x5458df
lea esi, [esp + 0x434]
call fcn.00466424
jmp 0x545380
lea eax, [0x6c9280]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x434]
mov dword [esp + 8], eax
call fcn.004115f0
mov eax, dword [esp + 0x7a4]
jmp 0x545380
add esp, 0x790
ret
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x794]
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x3b8]
mov esi, dword [esp + 0x3a8]
mov edi, dword [esp + 0x98]
lea edx, [ebp + ebx]
mov dword [esp + 0x3c4], edx
mov edx, dword [ebx + ebp + 4]
mov ebx, dword [ebx + ebp]
lea ebp, [edx - 1]
cmp edi, ebp
jge 0x5453e0
cmp edi, edx
jae 0x54600c
mov dword [esp + 0x9c], edi
imul eax, edi, 0x6c
lea esi, [ebx + eax]
lea edi, [esp + 0x5c0]
call fcn.004663f2
lea edi, [esp + 0x368]
lea esi, [esp + 0x5d0]
call fcn.0046647e
mov ecx, dword [esp + 0x368]
mov dword [esp + 0xec], ecx
mov edx, dword [esp + 0x36c]
mov ebx, dword [esp + 0x370]
mov ebp, dword [esp + 0x374]
lea edi, [esp]
lea esi, [esp + 0x37c]
call fcn.004664c4
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
call fcn.00548a60
lea edi, [esp + 0x294]
lea esi, [esp + 0x28]
call fcn.004664b0
mov eax, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x3b8]
mov edx, dword [esp + 0xcc]
mov ebx, eax
jmp 0x545a38
lea edi, [esp + 0x294]
lea esi, [esp + 0x254]
call fcn.004664b0
lea ecx, [ebp + 1]
mov ebp, dword [esp + 0x3b8]
mov ebx, dword [esp + 0x98]
mov eax, ecx
mov ecx, ebp
mov ebp, dword [edx + ecx + 4]
mov ebx, dword [edx + ecx]
cmp eax, ebp
jge 0x54590f
jae 0x546005
mov dword [esp + 0xc8], eax
imul ebp, eax, 0x6c
mov dword [esp + 0xb4], ebp
add ebx, ebp
lea edi, [esp + 0x554]
mov esi, ebx
call fcn.004663f2
lea edi, [esp + 0x334]
lea esi, [esp + 0x564]
call fcn.0046647e
mov ecx, dword [esp + 0x59c]
test ecx, ecx
jne 0x545ade
mov ecx, dword [esp + 0x564]
mov dword [esp + 0xec], ecx
mov ebx, dword [esp + 0x568]
mov dword [esp + 0xe8], ebx
mov ebp, dword [esp + 0x56c]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0x570]
mov dword [esp + 0xe0], ebx
lea edi, [esp + 0x2b4]
lea esi, [esp + 0x294]
call fcn.004664b0
xor ecx, ecx
jmp 0x545f1f
xor ecx, ecx
test cl, cl
jne 0x545af7
mov eax, dword [esp + 0x3b8]
mov ebp, dword [esp + 0xc8]
jmp 0x545cf1
mov ebx, dword [esp + 0x3b8]
mov esi, dword [ebx + edx + 8]
mov ecx, dword [edx + ebx + 4]
mov edi, dword [edx + ebx]
cmp eax, esi
ja 0x545ef0
lea edx, [eax + 1]
cmp ecx, edx
jb 0x545ee9
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ecx
lea edx, [ecx - 1]
sub ecx, eax
sub esi, eax
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
add ebp, 0x6c
and ebp, esi
add ebp, edi
lea esi, [ecx - 1]
mov eax, dword [esp + 0xb0]
cmp eax, edx
jae 0x545ba6
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xa8], esi
mov dword [esp + 0x3b4], ebp
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
lea eax, [0x6c9100]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x3b4]
mov eax, esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0x3b4], edi
lea ebx, [0x6c9100]
mov dword [esp], ebx
mov ebx, dword [esp + 0xac]
sub ebx, ecx
sub eax, ebx
neg eax
sar eax, 0x1f
imul ecx, ebx, 0x6c
and ecx, eax
lea eax, [edi + ecx]
mov dword [esp + 4], eax
sub edx, ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00411700
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x3b8]
mov dword [edx + eax + 4], ecx
mov ebx, dword [esp + 0xb0]
mov dword [edx + eax + 8], ebx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x545c3d
mov ebx, dword [esp + 0x3b4]
mov dword [edx + eax], ebx
mov eax, ebx
mov ebx, dword [esp + 0xcc]
mov edi, dword [esp + 0x3c4]
jmp 0x545c52
mov edi, dword [esp + 0x3c4]
mov ebx, eax
mov eax, dword [esp + 0x3b4]
call fcn.00465d80
mov ebp, dword [esp + 0xc8]
dec ebp
cmp ecx, ebp
jbe 0x545ee2
mov dword [esp + 0xc8], ebp
mov ecx, dword [esp + 0xb4]
lea esi, [ecx + eax - 0x48]
lea edi, [esp + 0x20c]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x348]
call fcn.004664c4
lea edi, [esp + 0x18]
lea esi, [esp + 0x20c]
call fcn.004664c4
call fcn.004cac20
lea edi, [esp + 0x23c]
lea esi, [esp + 0x30]
call fcn.004664c4
mov eax, dword [esp + 0x3b8]
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + eax + 4]
mov ebx, dword [ecx + eax]
mov ebp, dword [esp + 0xc8]
cmp edx, ebp
jbe 0x545ed9
mov edx, ecx
mov ecx, dword [esp + 0xb4]
lea edi, [ecx + ebx - 0x48]
lea esi, [esp + 0x23c]
call fcn.004664c4
mov dword [esp + 0xc8], ebp
lea edi, [esp + 0x134]
lea esi, [esp + 0x348]
call fcn.004664c4
lea edi, [esp + 0x274]
lea esi, [esp + 0x294]
call fcn.004664b0
lea edi, [esp + 0x254]
xor eax, eax
call fcn.00465fe8
lea edi, [esp + 0x2b4]
lea esi, [esp + 0x274]
call fcn.004664b0
xor ecx, ecx
jmp 0x545d6f
lea ebx, [esp + ecx*8 + 0x254]
mov edx, ebx
mov ebx, dword [esp + 0xe4]
mov dword [edx], ebx
lea ebx, [esp + ecx*8 + 0x258]
mov dword [ebx], eax
inc ecx
xor eax, eax
mov edx, dword [esp + 0xcc]
mov ebp, dword [esp + 0xc8]
cmp ecx, 4
jge 0x545a10
mov dword [esp + 0xa0], ecx
lea eax, [esp + ecx*8 + 0x2b4]
mov edx, dword [eax]
mov dword [esp + 0xec], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xe8], eax
lea edi, [esp + 0x1c4]
lea esi, [esp + 0x134]
call fcn.004664c4
mov ecx, dword [esp + 0x1c4]
mov dword [esp], ecx
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x1c8]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x1cc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0xec]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0x1d4]
mov dword [esp], ecx
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044e3e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x1d8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xa0]
cmp ecx, 4
jb 0x545d43
mov eax, ecx
mov ecx, 4
call fcn.00465e00
mov eax, ebp
mov ecx, edx
call fcn.00465e00
mov eax, ebp
call fcn.00465e00
mov eax, edx
call fcn.00465e60
mov ecx, eax
mov edx, esi
call fcn.00465e40
mov eax, dword [esp + 0xb0]
lea ecx, [eax + 1]
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xe0]
mov ebp, dword [esp + 0xe4]
cmp ecx, 4
jge 0x545ff6
mov dword [esp + 0xb0], ecx
lea eax, [esp + ecx*8 + 0x2b4]
mov edx, dword [eax]
mov dword [esp + 0xdc], edx
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
mov dword [esp], edx
mov ebx, dword [esp + 0xec]
mov dword [esp + 4], ebx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
jne 0x545f69
xor eax, eax
jmp 0x545f88
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
jne 0x545f90
xor eax, eax
jmp 0x545fd6
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xe8]
mov dword [esp + 4], ecx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
jne 0x545fb7
xor eax, eax
jmp 0x545fd6
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 4], ecx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
jne 0x545ef9
mov ebx, dword [esp + 0xb0]
cmp ebx, 4
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
setge cl
mov ebp, dword [esp + 0xb4]
jmp 0x545ae0
mov ecx, ebp
call fcn.00465e00
mov eax, edi
mov ecx, edx
call fcn.00465e00
call fcn.00465e00
mov eax, 3
mov ecx, ebx
call fcn.00465e00
mov eax, 4
mov ecx, ebx
call fcn.00465e00
mov eax, 1
xor ecx, ecx
call fcn.00465e60
lea eax, [0x69bcc0]
mov dword [esp], eax
lea eax, [0x78482c]
mov dword [esp + 4], eax
call fcn.00436d20
mov eax, 7
mov ecx, ebx
call fcn.00465e00
mov eax, ebx
call fcn.00465e00
mov eax, 3
call fcn.00465e00
lea eax, [0x69bcc0]
mov dword [esp], eax
lea eax, [0x784934]
mov dword [esp + 4], eax
call fcn.00436d20
xor eax, eax
mov ecx, eax
call fcn.00465e00
mov eax, ebp
call fcn.00465e00
mov eax, 3
mov ecx, ebx
call fcn.00465e00
mov ecx, 5
mov edx, ebp
call fcn.00465e40
mov edx, dword [edx + 0x10]
mov eax, dword [esp + 0xd0]
mov ebp, dword [esp + 0x3c4]
test edx, edx
je 0x54639c
mov dword [esp + 0x3a4], edx
mov ecx, dword [ebx + 0x180]
mov dword [esp + 0xcc], ecx
mov esi, dword [edx + 0x18]
lea edi, [esi + ecx]
mov ebp, dword [ebx + 0x184]
mov eax, dword [ebx + 0x17c]
cmp ebp, edi
jae 0x54612e
mov dword [esp + 0xc8], esi
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
lea eax, [0x69be80]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xb4], edi
mov dword [esp + 0x3b0], eax
sub edi, esi
lea edx, [eax + edi]
mov dword [esp], edx
mov dword [esp + 4], esi
call fcn.00466510
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x794]
mov dword [eax + 0x180], ecx
mov edx, dword [esp + 0xc8]
mov dword [eax + 0x184], edx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x54618e
mov ebx, dword [esp + 0x3b0]
mov dword [eax + 0x17c], ebx
jmp 0x5461a9
lea edi, [eax + 0x17c]
mov eax, dword [esp + 0x3b0]
call fcn.00465d80
mov ebx, eax
mov eax, dword [esp + 0x794]
mov ebp, dword [esp + 0xcc]
cmp ecx, ebp
jb 0x546529
sub ecx, ebp
sub edx, ebp
mov esi, edx
neg edx
sar edx, 0x1f
and ebp, edx
lea edx, [ebx + ebp]
mov ebx, dword [esp + 0x3a4]
mov ebp, dword [ebx + 0x14]
mov edi, ebx
mov ebx, dword [ebx + 0x18]
cmp ebx, ecx
jl 0x5461dd
mov ebx, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0xcc], esi
cmp ebp, edx
je 0x546229
mov dword [esp + 0x3a0], edx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.004666e0
mov eax, dword [esp + 0x794]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x3a0]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0x3a4]
mov ebx, edi
lea edi, [esp + 0x62c]
mov ebp, eax
xor eax, eax
call fcn.00465fd5
lea ecx, [ebx + 0x3c]
lea edi, [esp + 0x63c]
mov esi, ecx
call fcn.0046647e
mov dword [esp + 0x670], edx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x674], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x678], ecx
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x28]
mov esi, ebp
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x67c], ebp
mov dword [esp + 0x680], ecx
mov dword [esp + 0x684], edx
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ebp, dword [ebx + 0xc]
mov edi, ebx
mov ebx, dword [ebx]
mov dword [esp + 0x688], ebx
mov dword [esp + 0x68c], ecx
mov dword [esp + 0x690], edx
mov dword [esp + 0x694], ebp
mov ecx, dword [esi + 0x18c]
inc ecx
mov edx, dword [esi + 0x188]
mov ebx, dword [esi + 0x190]
cmp ebx, ecx
jae 0x54633c
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6c9100]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x794]
mov dword [ebx + 0x190], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x546323
mov dword [ebx + 0x188], eax
mov edi, dword [esp + 0x3c4]
jmp 0x54632f
mov edi, dword [esp + 0x3c4]
call fcn.00465d80
mov esi, ebx
mov edi, dword [esp + 0x3a4]
mov edx, eax
xor eax, eax
mov dword [esi + 0x18c], ecx
imul ecx, ecx, 0x6c
lea ecx, [ecx + edx - 0x6c]
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54636a
mov edx, edi
mov edi, ecx
mov ebx, esi
lea esi, [esp + 0x62c]
call fcn.004663f2
jmp 0x5460b3
lea eax, [0x6c9100]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x62c]
mov dword [esp + 8], eax
call fcn.004115f0
xor eax, eax
mov edx, dword [esp + 0x3a4]
mov ebx, dword [esp + 0x794]
jmp 0x5460b3
mov ecx, dword [ebx + 0x18c]
mov edx, dword [ebx + 0x188]
mov ebp, dword [ebx + 0x190]
cmp ecx, eax
jb 0x546524
mov dword [esp + 0xd0], ecx
lea edi, [esp + 0x714]
mov esi, eax
xor eax, eax
call fcn.00465fd1
sub ebp, esi
mov ecx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
imul ebx, esi, 0x6c
and ebx, ebp
add edx, ebx
mov dword [esp + 0x714], edx
mov edx, dword [esp + 0xd0]
sub edx, esi
mov dword [esp + 0x718], edx
mov dword [esp + 0x71c], ecx
lea esi, [esp + 0x50c]
lea edi, [esp + 0x728]
call fcn.0046644c
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x770], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x774], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x778], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x77c], ecx
mov ecx, dword [esp + 0x794]
mov edx, dword [ecx + 0x198]
inc edx
mov ebx, dword [ecx + 0x194]
mov ebp, dword [ecx + 0x19c]
cmp ebp, edx
jae 0x5464cd
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6d0ae0]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x794]
mov dword [ebx + 0x19c], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5464b5
mov dword [ebx + 0x194], eax
jmp 0x5464c0
lea edi, [ebx + 0x194]
call fcn.00465d80
mov edx, ecx
mov ebx, eax
xor eax, eax
mov ecx, dword [esp + 0x794]
mov dword [ecx + 0x198], edx
imul edx, edx, 0x7c
lea edi, [edx + ebx - 0x7c]
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x5464f2
lea esi, [esp + 0x714]
call fcn.004663ca
jmp 0x546511
lea eax, [0x6d0ae0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x714]
mov dword [esp + 8], eax
call fcn.004115f0
xor eax, eax
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0xe4]
jmp 0x54448f
call fcn.00465e60
mov eax, ebp
call fcn.00465e60
mov eax, 1
mov ecx, ebx
call fcn.00465e00
mov dword [esp], esi
mov dword [esp + 4], edx
lea eax, [0x69b740]
mov dword [esp + 8], eax
call fcn.00409400
mov eax, 1
mov ecx, edx
call fcn.00465e00
mov edx, ecx
mov ecx, ebp
call fcn.00465e40
mov eax, ebp
mov ecx, ebx
call fcn.00465e00
xor eax, eax
mov ecx, eax
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.005442d0