Function at 0x54e170
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4ec]
cmp eax, dword [ecx + 8]
jbe 0x54fc94
sub esp, 0x56c
lea edi, [esp + 0x32c]
xor eax, eax
call fcn.00465fe4
lea edi, [esp + 0x428]
call fcn.00465fdd
nop
lea edi, [esp + 0x428]
lea esi, [0x787720]
call fcn.00466442
lea edi, [esp + 0x308]
call fcn.00465fe7
mov ecx, dword [esp + 0x574]
mov dword [esp], ecx
call fcn.004deee0
movzx ecx, byte [esp + 0x28]
mov byte [esp + 0xaf], cl
lea edi, [esp + 0x308]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x2e4]
lea esi, [esp + 0x308]
call fcn.004664a6
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
movzx ebx, byte [esp + 0xaf]
jmp 0x54e275
lea edi, [esp + 0x308]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x574]
mov dword [esp], ecx
call fcn.004deee0
movzx ebx, byte [esp + 0x28]
lea edi, [esp + 0x308]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x2e4]
lea esi, [esp + 0x308]
call fcn.004664a6
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
test bl, bl
je 0x54fb8d
mov ebx, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x2f0]
mov eax, ebp
mov ebp, dword [esp + 0x2f8]
test ebx, ebx
jbe 0x54fc8a
mov esi, ebp
movzx ebp, byte [eax]
xchg ebp, eax
cmp al, 0xd1
xchg ebp, eax
ja 0x54f17d
xchg ebp, eax
cmp al, 0xcd
xchg ebp, eax
ja 0x54e620
xchg ebp, eax
cmp al, 0xcb
xchg ebp, eax
je 0x54e4d9
xchg ebp, eax
cmp al, 0xcc
xchg ebp, eax
jne 0x54e313
mov ebx, dword [edx + 0x84]
mov ebp, dword [edx + 0x80]
lea eax, [ebx - 1]
cmp ebx, eax
jbe 0x54fc83
lea ebx, [ebx + ebx*2]
lea esi, [ebp + ebx*8 - 0x18]
lea edi, [esp + 0x428]
call fcn.004664c4
mov ecx, dword [edx + 0x88]
cmp ecx, eax
jb 0x54fc7a
mov dword [edx + 0x84], eax
mov ecx, dword [esp + 0x574]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xcd
xchg ebp, eax
jne 0x54e222
nop
dec ebx
cmp ebx, 3
jbe 0x54fc6e
mov ebx, dword [edx + 0x9c]
mov ebp, dword [edx + 0x98]
mov edi, ecx
lea ecx, [esi - 1]
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ecx, dword [eax + ecx]
test ebx, ebx
je 0x54e34f
mov ebp, dword [ebp + ebx*4 - 4]
jmp 0x54e354
mov ebp, 0xffffffff
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x108], ecx
mov ebx, dword [edx + 0x90]
mov dword [esp + 0x104], ebx
mov esi, ebx
mov ebx, dword [edx + 0xd0]
lea edi, [esp + 0x210]
xor eax, eax
call fcn.00465fe4
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x210], ecx
mov dword [esp + 0x214], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], ebx
mov ecx, dword [edx + 0x90]
inc ecx
mov ebx, dword [edx + 0x8c]
mov ebp, dword [edx + 0x94]
cmp ebp, ecx
jae 0x54e42b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6d0a40]
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 + 0x570]
mov dword [ebx + 0x94], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54e413
mov dword [ebx + 0x8c], eax
jmp 0x54e41e
lea edi, [ebx + 0x8c]
call fcn.00465d80
mov edx, ebx
mov esi, dword [esp + 0x104]
mov ebx, eax
xor eax, eax
mov dword [edx + 0x90], ecx
lea ecx, [ecx + ecx*2]
shl ecx, 4
lea edi, [ecx + ebx - 0x30]
lea esi, [esp + 0x210]
call fcn.00466488
mov ecx, dword [edx + 0x9c]
inc ecx
mov ebx, dword [edx + 0x98]
mov ebp, dword [edx + 0xa0]
cmp ebp, ecx
jae 0x54e4bc
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x69b600]
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 + 0x570]
mov dword [ebx + 0xa0], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54e4ab
mov dword [ebx + 0x98], eax
jmp 0x54e4b6
lea edi, [ebx + 0x98]
call fcn.00465d80
mov edx, ebx
mov ebx, eax
xor eax, eax
mov dword [edx + 0x9c], ecx
mov ebp, dword [esp + 0x104]
mov dword [ebx + ecx*4 - 4], ebp
mov ecx, dword [esp + 0x574]
jmp 0x54e222
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.004deca0
movzx eax, byte [esp + 0x24]
lea edi, [esp + 0x1f8]
lea esi, [esp + 0xc]
call fcn.004664c4
lea edi, [esp + 0x198]
lea esi, [esp + 0x1f8]
call fcn.004664c4
test al, al
je 0x54e5c6
lea edi, [esp + 0x1e0]
lea esi, [esp + 0x428]
call fcn.004664c4
mov eax, dword [esp + 0x570]
mov ecx, dword [eax + 0x80]
mov edx, dword [eax + 0x88]
mov ebx, dword [eax + 0x84]
inc ebx
cmp edx, ebx
jae 0x54e5ad
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6e1f40]
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 + 0x570]
mov dword [ebx + 0x88], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54e597
mov dword [ebx + 0x80], eax
jmp 0x54e5a2
lea edi, [ebx + 0x80]
call fcn.00465d80
mov ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x570]
mov dword [eax + 0x84], ebx
lea edx, [ebx + ebx*2]
lea edi, [ecx + edx*8 - 0x18]
lea esi, [esp + 0x1e0]
call fcn.004664c4
lea edi, [esp]
lea esi, [esp + 0x428]
call fcn.004664c4
lea edi, [esp + 0x18]
lea esi, [esp + 0x198]
call fcn.004664c4
call fcn.004cac20
lea edi, [esp + 0x1f8]
lea esi, [esp + 0x30]
call fcn.004664c4
lea edi, [esp + 0x428]
lea esi, [esp + 0x1f8]
call fcn.004664c4
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xcf
xchg ebp, eax
ja 0x54e730
xchg ebp, eax
cmp al, 0xce
xchg ebp, eax
jne 0x54e68c
mov ebx, dword [edx + 0x9c]
mov ebp, dword [edx + 0x98]
lea eax, [ebx - 1]
cmp ebx, eax
jbe 0x54fc67
mov ebx, dword [ebp + ebx*4 - 4]
mov ebp, dword [edx + 0x90]
mov esi, dword [edx + 0x8c]
mov edi, esi
mov esi, dword [edx + 0xd0]
cmp ebp, ebx
jbe 0x54fc5e
lea ebx, [ebx + ebx*2]
shl ebx, 4
mov dword [edi + ebx + 0x10], esi
mov ebx, dword [edx + 0xa0]
cmp ebx, eax
jb 0x54fc55
mov dword [edx + 0x9c], eax
jmp 0x54e222
mov byte [esp + 0x444], 2
mov ebx, dword [esp + 0x2f4]
mov ebp, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2fc]
mov eax, edx
mov edx, dword [esp + 0x300]
cmp edx, 1
jbe 0x54fc49
mov edx, dword [esi + 8]
mov edi, ebp
mov ebp, dword [esi + 0xc]
test edx, edx
je 0x54e705
mov dword [esp + 0xb0], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x250], edx
mov esi, dword [esi]
lea edx, [0x6dc500]
cmp esi, edx
jne 0x54fc33
cmp ebx, 1
jbe 0x54fc27
movzx ebx, byte [edi + 1]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0x250]
jmp 0x54e70d
xor ebx, ebx
xor edx, edx
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x448], esi
mov dword [esp + 0x44c], edx
mov dword [esp + 0x450], ebp
mov byte [esp + 0x454], bl
mov edx, eax
jmp 0x54e222
xchg ebp, eax
cmp al, 0xd0
xchg ebp, eax
je 0x54e78f
mov byte [esp + 0x444], 0
mov ebx, dword [esp + 0x2f0]
mov ebp, dword [esp + 0x2f8]
cmp ebp, 5
jb 0x54fc1b
movzx ebp, byte [ebx + 1]
movzx esi, byte [ebx + 2]
mov eax, edx
movzx edx, byte [ebx + 3]
movzx ebx, byte [ebx + 4]
xchg ebp, eax
mov byte [esp + 0x458], al
xchg ebp, eax
xchg esi, eax
mov byte [esp + 0x459], al
xchg esi, eax
mov byte [esp + 0x45a], dl
mov byte [esp + 0x45b], bl
mov edx, eax
jmp 0x54e222
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x42c]
mov ebx, dword [esp + 0x434]
mov ebp, dword [esp + 0x438]
mov esi, dword [esp + 0x430]
mov dword [esp + 0x100], esi
mov esi, dword [esp + 0x43c]
mov dword [esp + 0xfc], esi
lea edi, [esp + 0x138]
xor eax, eax
call fcn.00465fea
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x144], ebx
mov dword [esp + 0x148], ebp
mov dword [esp], 0xc9742400
mov dword [esp + 4], 0x49742400
call fcn.0044e590
movzx ecx, byte [esp + 8]
test cl, cl
je 0x54e828
mov eax, 0x49742400
mov ecx, 0xc9742400
jmp 0x54e832
mov eax, 0xc9742400
mov ecx, 0x49742400
mov dword [esp + 0x108], ecx
mov dword [esp + 0xf8], eax
mov dword [esp], 0xc9742400
mov dword [esp + 4], 0x49742400
call fcn.0044e590
movzx eax, byte [esp + 8]
test al, al
je 0x54e869
mov eax, 0x49742400
mov ecx, 0xc9742400
jmp 0x54e873
mov eax, 0xc9742400
mov ecx, 0x49742400
cmp byte [esp + 0x444], 2
je 0x54e88f
mov edx, eax
mov ebx, dword [esp + 0xf8]
mov eax, dword [esp + 0x108]
jmp 0x54e8db
mov eax, dword [esp + 0x448]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
nop
sub ecx, dword [eax + 0x10]
sub edx, dword [eax + 0x14]
mov dword [esp + 0xb4], edx
mov dword [esp], ecx
call fcn.0044e7d0
mov eax, dword [esp + 4]
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp], ecx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x108]
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0x570]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea edi, [esp + 0x14]
lea esi, [esp + 0x138]
call fcn.004664c4
call fcn.00552b20
mov eax, dword [esp + 0x38]
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xf4], edx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xbc], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x244], ebp
mov ebx, dword [esp + 0x44]
mov dword [esp + 0xf0], ebx
lea edi, [esp + 0x1f8]
lea esi, [esp + 0x48]
call fcn.004664c4
lea edi, [esp + 0x168]
lea esi, [esp + 0x1f8]
call fcn.004664c4
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov edx, dword [esp + 0xfc]
mov dword [esp + 4], edx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov edx, dword [esp + 0x100]
mov dword [esp + 4], edx
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov edx, dword [esp + 0xfc]
mov dword [esp + 4], edx
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x578]
mov dword [esp], ecx
mov edx, dword [esp + 0x57c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x580]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x584]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0xe8]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
call fcn.004dd6e0
mov eax, dword [esp + 0x440]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
test eax, eax
je 0x54eabe
mov dword [esp + 0xe0], ebp
mov esi, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
mov ebp, dword [eax + 0x38]
mov eax, dword [eax + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x1c], eax
call fcn.004dd6e0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xec], ebp
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xdc], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
je 0x54eaf6
mov eax, 1
jmp 0x54eb15
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 4], ecx
call fcn.0044e620
movzx eax, byte [esp + 8]
test al, al
je 0x54eb25
mov ecx, dword [esp + 0x574]
jmp 0x54e222
mov ecx, dword [esp + 0x244]
test ecx, ecx
je 0x54ecca
lea edi, [esp + 0x2c0]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x24c], ecx
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2ec]
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x2e0], ebx
lea edi, [esp + 0x278]
call fcn.00465fe7
mov ecx, dword [esp + 0x24c]
mov dword [esp + 0x290], ecx
mov dword [esp + 0x294], edx
mov dword [esp + 0x298], ebx
lea edi, [esp + 0x1b0]
lea esi, [esp + 0x138]
call fcn.004664c4
mov ecx, dword [esp + 0x1b0]
mov dword [esp], ecx
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov ecx, dword [esp + 8]
mov dword [esp + 0xd8], ecx
mov edx, dword [esp + 0x1b4]
mov dword [esp + 0xd4], edx
mov ebx, dword [esp + 0x1bc]
mov dword [esp + 0xd0], ebx
mov ebp, dword [esp + 0x1c0]
mov dword [esp], ebp
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x280], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x284], edx
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x28c], edx
mov dword [esp + 0x288], ecx
mov ecx, dword [esp + 0x570]
mov dword [esp], ecx
lea edx, [esp + 0x428]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x244]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xc0]
mov dword [esp + 0x10], ebp
lea edi, [esp + 0x14]
lea esi, [esp + 0x2c0]
call fcn.004664a6
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x38], ecx
mov ebp, dword [esp + 0xf8]
mov dword [esp + 0x3c], ebp
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x50], 0
call fcn.0054dd00
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xc], eax
call fcn.004dd9f0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x104], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc8], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xc4], ebx
lea ebp, [esp + 0x428]
mov dword [esp], ebp
mov esi, dword [esp + 0x108]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xf8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x100]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], esi
lea edi, [esp + 0x1c]
lea esi, [esp + 0x168]
call fcn.004664c4
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
call fcn.0054fd70
lea edi, [esp + 0x474]
lea esi, [esp + 0x44]
call fcn.004663fc
mov eax, dword [esp + 0x440]
test eax, eax
je 0x54edbf
movzx ecx, byte [eax + 8]
jmp 0x54edc4
mov ecx, 1
mov edx, dword [esp + 0x104]
test edx, edx
jne 0x54eebb
mov ebx, dword [esp + 0xcc]
test ebx, ebx
jne 0x54eea2
mov ebp, dword [esp + 0xc8]
mov eax, ebx
mov ebx, dword [esp + 0x570]
cmp dword [ebx + 0xb0], ebp
jne 0x54ee97
mov esi, ebp
mov ebp, dword [esp + 0xc4]
cmp dword [ebx + 0xb4], ebp
jne 0x54eed7
test cl, cl
je 0x54eed7
movzx ecx, byte [esp + 0x475]
test cl, cl
je 0x54eed7
movzx ecx, byte [esp + 0x474]
test cl, cl
jne 0x54eed7
mov ecx, dword [ebx + 0x9c]
test ecx, ecx
jne 0x54eed7
mov dword [ebx + 0xd0], 0
mov ecx, dword [esp + 0x478]
mov edx, dword [esp + 0x47c]
mov ebp, dword [esp + 0x480]
mov dword [ebx + 0xbc], ecx
mov dword [ebx + 0xc0], edx
mov dword [ebx + 0xc4], ebp
mov dword [ebx + 0xc8], 0x3f800000
mov byte [ebx + 0xb8], 1
mov ecx, dword [esp + 0x574]
jmp 0x54e222
mov esi, ebp
mov ebp, dword [esp + 0xc4]
jmp 0x54eed7
mov eax, ebx
mov ebx, dword [esp + 0x570]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xc8]
jmp 0x54eed7
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0x570]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xc8]
lea edi, [esp + 0x4dc]
xor eax, eax
call fcn.00465fcc
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x4dc], ecx
mov dword [esp + 0x4e0], edx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x4e4], ecx
mov dword [esp + 0x4e8], esi
mov dword [esp + 0x4ec], ebp
lea edi, [esp + 0x4f0]
lea esi, [esp + 0x474]
call fcn.004663fc
mov ecx, dword [ebx + 0x9c]
mov edx, dword [ebx + 0x98]
test ecx, ecx
je 0x54f07d
mov edx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x8c]
mov ecx, dword [ebx + 0x90]
cmp ecx, edx
jbe 0x54fc14
lea ecx, [edx + edx*2]
shl ecx, 4
mov dword [esp + 0x104], ecx
mov esi, edx
mov edx, dword [ebp + ecx + 0x14]
mov edi, ebx
mov ebx, dword [ebp + ecx + 0x18]
mov dword [esp + 0xcc], ebx
mov ebx, dword [ebp + ecx + 0x1c]
mov ecx, dword [ebp + ecx + 0x20]
cmp ebx, edx
jle 0x54ef93
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xcc]
cmp ebx, ecx
jl 0x54efdb
mov ecx, dword [esp + 0x4e0]
mov edx, dword [esp + 0x4e4]
mov ebx, dword [esp + 0x4e8]
mov esi, ebx
mov ebx, dword [esp + 0x4ec]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x104]
mov dword [ebp + ebx + 0x14], ecx
mov dword [ebp + ebx + 0x18], edx
mov dword [ebp + ebx + 0x1c], esi
mov ecx, dword [esp + 0xcc]
mov dword [ebp + ebx + 0x20], ecx
jmp 0x54f07f
mov dword [esp + 0xcc], esi
mov eax, dword [esp + 0x4e0]
mov ebp, dword [esp + 0x4e4]
mov esi, dword [esp + 0x4e8]
mov edi, dword [esp + 0x4ec]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0xc8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
call fcn.004baa50
mov eax, dword [esp + 0x570]
mov ecx, dword [eax + 0x8c]
mov edx, dword [eax + 0x90]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xcc]
cmp edx, eax
jbe 0x54fc0d
mov edx, dword [esp + 0x104]
mov dword [ecx + edx + 0x14], ebx
mov dword [ecx + edx + 0x18], ebp
mov dword [ecx + edx + 0x1c], esi
mov dword [ecx + edx + 0x20], edi
xor eax, eax
mov edi, dword [esp + 0x570]
jmp 0x54f07f
mov edi, ebx
mov ecx, dword [edi + 0xd0]
inc ecx
mov edx, dword [edi + 0xcc]
mov ebx, dword [edi + 0xd4]
cmp ebx, ecx
jae 0x54f0f4
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6cd480]
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 + 0x570]
mov dword [ebx + 0xd4], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54f0e3
mov dword [ebx + 0xcc], eax
jmp 0x54f0ee
lea edi, [ebx + 0xcc]
call fcn.00465d80
mov edi, ebx
mov edx, eax
xor eax, eax
mov dword [edi + 0xd0], ecx
lea ecx, [ecx + ecx*8]
shl ecx, 4
lea ecx, [ecx + edx - 0x90]
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x54f12c
lea esi, [esp + 0x4dc]
mov edx, edi
mov edi, ecx
call fcn.00466398
mov ecx, dword [esp + 0x244]
test ecx, ecx
jmp 0x54f15e
lea eax, [0x6cd480]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x4dc]
mov dword [esp + 8], eax
call fcn.004115f0
mov eax, dword [esp + 0x244]
test eax, eax
mov eax, 0
mov edx, dword [esp + 0x570]
je 0x54f171
mov ecx, dword [esp + 0x440]
mov ecx, dword [ecx + 0x70]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x574]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xd8
xchg ebp, eax
ja 0x54f464
xchg ebp, eax
cmp al, 0xd2
xchg ebp, eax
je 0x54f364
xchg ebp, eax
cmp al, 0xd7
xchg ebp, eax
jne 0x54f2d5
nop
dec ebx
cmp ebx, 3
jbe 0x54fc01
lea ebx, [esi - 1]
neg ebx
sar ebx, 0x1f
and ebx, 1
mov eax, dword [eax + ebx]
lea edi, [esp + 0x150]
lea esi, [esp + 0x428]
call fcn.004664c4
mov ecx, dword [edx + 0x78]
mov ebx, eax
sub eax, ecx
mov ecx, dword [edx + 0x7c]
mov ebp, dword [edx + 0x74]
mov esi, ebp
lea ebp, [eax + 1]
test ebp, ebp
jle 0x54f2a8
mov dword [esp + 0x108], ebx
lea edi, [ebx + 1]
cmp ecx, edi
jae 0x54f22c
mov dword [esp + 0x104], eax
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
lea eax, [0x6e1f40]
mov dword [esp + 0x10], eax
call fcn.0044be60
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x104]
mov esi, ebp
mov dword [esp + 0x104], ecx
mov dword [esp + 0xcc], edi
mov dword [esp + 0x248], esi
sub edi, eax
lea ebx, [edi + edi*2]
lea ebx, [esi + ebx*8 - 0x18]
mov dword [esp], ebx
lea eax, [eax + eax*2]
shl eax, 3
add eax, 0x18
mov dword [esp + 4], eax
call fcn.00466510
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x570]
mov dword [ecx + 0x78], eax
mov eax, dword [esp + 0x104]
mov dword [ecx + 0x7c], eax
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x54f290
mov edx, dword [esp + 0x248]
mov dword [ecx + 0x74], edx
jmp 0x54f29f
lea edi, [ecx + 0x74]
mov eax, dword [esp + 0x248]
call fcn.00465d80
mov edx, ecx
mov ebx, dword [esp + 0x108]
mov ecx, dword [edx + 0x78]
mov ebp, dword [edx + 0x74]
cmp ebx, ecx
jae 0x54fbfa
lea ecx, [ebx + ebx*2]
lea edi, [ebp + ecx*8]
lea esi, [esp + 0x150]
call fcn.004664c4
mov ecx, dword [esp + 0x574]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xd8
xchg ebp, eax
jne 0x54e222
nop
lea edi, [esp + 0x428]
lea esi, [0x787720]
call fcn.00466442
mov ecx, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x2f0]
mov ebp, dword [esp + 0x2f8]
test ecx, ecx
jbe 0x54fbf1
cmp byte [ebx], 0xd8
jne 0x54fbd9
dec ecx
cmp ecx, 3
jbe 0x54fbcf
mov ecx, dword [edx + 0x78]
mov eax, edx
mov edx, dword [edx + 0x74]
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 0x54fbc8
lea ecx, [ebx + ebx*2]
lea esi, [edx + ecx*8]
lea edi, [esp + 0x428]
call fcn.004664c4
mov ecx, dword [esp + 0x574]
mov edx, eax
jmp 0x54e222
mov byte [esp + 0x444], 1
mov eax, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00549960
lea edi, [esp + 0x180]
lea esi, [esp + 0xc]
call fcn.004664c4
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x184]
mov dword [esp + 0x45c], eax
mov dword [esp + 0x460], ecx
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x464], eax
mov dword [esp + 0x468], ecx
movzx eax, byte [esp + 0x188]
movzx ecx, byte [esp + 0x189]
movzx edx, byte [esp + 0x18a]
movzx ebx, byte [esp + 0x18b]
mov byte [esp + 0x46c], al
mov byte [esp + 0x46d], cl
mov byte [esp + 0x46e], dl
mov byte [esp + 0x46f], bl
movzx eax, byte [esp + 0x194]
movzx ecx, byte [esp + 0x195]
movzx edx, byte [esp + 0x196]
movzx ebx, byte [esp + 0x197]
mov byte [esp + 0x470], al
mov byte [esp + 0x471], cl
mov byte [esp + 0x472], dl
mov byte [esp + 0x473], bl
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xdb
xchg ebp, eax
ja 0x54fa78
xchg ebp, eax
cmp al, 0xda
xchg ebp, eax
je 0x54f497
xchg ebp, eax
cmp al, 0xdb
xchg ebp, eax
jne 0x54e222
mov ebx, dword [esp + 0x440]
mov ebx, dword [ebx + 0x70]
mov dword [esp + 0x440], ebx
jmp 0x54e222
lea edi, [esp + 0x10c]
xor eax, eax
call fcn.00465feb
mov ecx, dword [esp + 0x2f0]
mov edx, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x2f8]
lea ebp, [esp + 0x10c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004dec20
movzx ecx, byte [esp + 0x11c]
mov byte [esp + 0x32c], cl
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x110]
mov dword [esp + 0x104], edx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xcc], ebx
mov ebp, dword [esp + 0x118]
mov dword [esp + 0xc8], ebp
mov dword [esp], ecx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0x108], ecx
mov edx, dword [esp + 0x104]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0x100], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 4]
mov dword [esp + 0xfc], ecx
mov edx, dword [esp + 0xc8]
mov dword [esp], edx
call fcn.0044e7d0
mov ecx, dword [esp + 0x428]
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + 0x42c]
mov ebx, dword [esp + 0x434]
mov ebp, dword [esp + 0x438]
mov esi, dword [esp + 0x430]
mov dword [esp + 0xf4], esi
mov esi, dword [esp + 0x43c]
mov dword [esp + 0xf0], esi
mov esi, dword [esp + 4]
lea edi, [esp + 0x120]
xor eax, eax
call fcn.00465fea
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], edx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebp
mov ecx, dword [esp + 0x354]
test ecx, ecx
je 0x54f8d2
lea edi, [esp + 0x29c]
lea esi, [esp + 0x32c]
call fcn.004664a6
lea edi, [esp + 0x1c8]
lea esi, [esp + 0x120]
call fcn.004664c4
mov eax, dword [esp + 0x1c8]
mov dword [esp], eax
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov eax, dword [esp + 8]
mov dword [esp + 0x108], eax
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0x100], ecx
mov edx, dword [esp + 0x1d4]
mov dword [esp + 0xfc], edx
mov ebx, dword [esp + 0x1d8]
mov dword [esp], ebx
mov dword [esp + 4], 0x3f800000
call fcn.0044e350
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x2a4], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x2ac], eax
lea edi, [esp + 0x32c]
lea esi, [esp + 0x29c]
call fcn.004664a6
mov eax, dword [esp + 0x570]
mov ecx, dword [eax + 0x114]
mov dword [esp + 0x240], ecx
lea edi, [esp + 0x254]
lea esi, [esp + 0x29c]
call fcn.004664a6
lea edi, [esp + 0x3a0]
xor eax, eax
call fcn.00465fdf
mov ecx, dword [esp + 0x240]
mov edx, dword [ecx]
lea ebx, [0x69d620]
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0x254]
mov dword [esp + 8], edx
call fcn.0040ce40
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test eax, eax
je 0x54f769
mov edx, dword [esp + 0x240]
mov ebx, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
lea ebp, [eax - 1]
cmp ecx, ebp
jbe 0x54fbc1
mov ecx, eax
shl eax, 6
mov esi, ebp
lea ebp, [eax + ecx*4]
mov byte [ebp + ebx - 4], 1
mov ebx, dword [edx + 0x14]
mov edx, dword [edx + 0x10]
cmp ebx, esi
jbe 0x54fbb8
mov dword [esp + 0x104], ecx
lea esi, [ebp + edx - 0x44]
lea edi, [esp + 0x3a0]
call fcn.00466456
mov eax, dword [esp + 0x104]
lea edi, [esp + 0x35c]
lea esi, [esp + 0x3a0]
call fcn.00466456
test eax, eax
je 0x54f7a1
mov eax, dword [esp + 0x368]
mov ecx, dword [esp + 0x36c]
mov edx, dword [esp + 0x370]
mov ebx, dword [esp + 0x374]
jmp 0x54f9cb
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x354]
mov edx, dword [esp + 0x358]
movzx ebx, byte [esp + 0x32c]
mov ebp, dword [esp + 0x330]
mov esi, ebp
mov ebp, dword [esp + 0x570]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
lea edi, [esp + 0x10]
mov eax, esi
lea esi, [esp + 0x120]
call fcn.004664c4
mov byte [esp + 0x28], bl
mov dword [esp + 0x2c], eax
call fcn.00552270
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x108], ebx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x100], ebp
mov esi, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], ecx
mov dword [esp + 0x358], edx
xor eax, eax
lea edi, [esp + 0x3e4]
call fcn.00465fdf
mov dword [esp + 0x3f0], ebp
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x3f8], esi
mov dword [esp + 0x3fc], ebx
mov edx, dword [esp + 0x570]
mov eax, dword [edx + 0x114]
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0x32c]
call fcn.004664a6
lea edi, [esp + 0x28]
lea esi, [esp + 0x3e4]
call fcn.00466456
call fcn.0053aa30
mov edx, dword [esp + 0x108]
mov ebx, dword [esp + 0xf8]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
jmp 0x54f9cb
mov eax, dword [esp + 0x570]
mov dword [esp], eax
mov ecx, dword [esp + 0x108]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
lea edi, [esp + 0x14]
lea esi, [esp + 0x120]
call fcn.004664c4
call fcn.00552b20
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x104], ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x108], ebx
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x44]
lea edi, [esp + 0x1f8]
lea esi, [esp + 0x48]
call fcn.004664c4
mov dword [esp + 0x350], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x354], eax
mov dword [esp + 0x358], edx
mov eax, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2e8]
mov dword [esp + 0xfc], ecx
mov edx, dword [esp + 0x2ec]
lea edi, [esp + 0x32c]
mov esi, eax
xor eax, eax
call fcn.00465fe7
mov dword [esp + 0x344], esi
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x348], ecx
mov dword [esp + 0x34c], edx
mov edx, dword [esp + 0x100]
mov ecx, ebp
mov eax, dword [esp + 0x108]
mov dword [esp + 0x108], ecx
mov ebp, dword [esp + 0x350]
mov esi, ebx
mov ebx, dword [esp + 0x354]
mov edi, edx
mov edx, dword [esp + 0x358]
mov ecx, dword [esp + 0x570]
mov dword [esp], ecx
lea ecx, [esp + 0x428]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
mov edx, edi
lea edi, [esp + 0x14]
mov ebx, esi
lea esi, [esp + 0x32c]
call fcn.004664a6
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x4c], eax
mov byte [esp + 0x50], 1
call fcn.0054dd00
lea edi, [esp + 0x32c]
xor eax, eax
call fcn.00465fe4
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
jmp 0x54e222
xchg ebp, eax
cmp al, 0xdd
xchg ebp, eax
je 0x54fab7
xchg ebp, eax
cmp al, 0xde
xchg ebp, eax
jne 0x54e222
cmp ebx, 4
jbe 0x54fbac
dec ebx
cmp ebx, 3
jbe 0x54fba0
lea ebx, [esi - 1]
neg ebx
sar ebx, 0x1f
and ebx, 1
mov ebx, dword [eax + ebx]
mov dword [esp + 0x330], ebx
jmp 0x54e222
lea edi, [esp + 0x308]
xor eax, eax
call fcn.00465fe7
mov ecx, dword [esp + 0x574]
mov dword [esp], ecx
call fcn.004deee0
movzx ecx, byte [esp + 0x28]
mov byte [esp + 0xaf], cl
lea edi, [esp + 0x308]
lea esi, [esp + 4]
call fcn.004664a6
lea edi, [esp + 0x2e4]
lea esi, [esp + 0x308]
call fcn.004664a6
movzx ecx, byte [esp + 0xaf]
test cl, cl
je 0x54fb8d
mov edx, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x2f0]
mov ebp, dword [esp + 0x2f8]
cmp edx, 1
jb 0x54fb94
lea ecx, [ebp - 1]
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, ebx
mov dword [esp + 0x350], ecx
lea ecx, [edx - 1]
mov dword [esp + 0x354], ecx
mov dword [esp + 0x358], ebp
mov ecx, dword [esp + 0x2e4]
mov edx, dword [esp + 0x2e8]
mov ebx, dword [esp + 0x2ec]
mov dword [esp + 0x344], ecx
mov dword [esp + 0x348], edx
mov dword [esp + 0x34c], ebx
mov ecx, dword [esp + 0x574]
mov edx, dword [esp + 0x570]
jmp 0x54e222
add esp, 0x56c
ret
mov eax, 1
xor ecx, ecx
call fcn.00465e60
mov eax, 3
mov ecx, ebx
call fcn.00465e00
mov eax, 4
mov ecx, ebx
call fcn.00465e00
mov eax, esi
mov ecx, ebx
call fcn.00465e00
mov eax, ebp
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, ebx
call fcn.00465e00
mov eax, 3
mov ecx, ebx
call fcn.00465e00
mov ecx, edx
call fcn.00465e00
mov eax, edx
call fcn.00465e00
mov ecx, 5
mov edx, ebp
call fcn.00465e40
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 ecx, eax
mov edx, ebx
call fcn.00465e40
mov eax, ebx
mov ecx, ebp
call fcn.00465e00
mov ecx, ebx
call fcn.00465e00
mov eax, 3
mov ecx, ebx
call fcn.00465e00
mov edx, ecx
mov ecx, eax
call fcn.00465e40
mov ecx, ebx
call fcn.00465e00
xor eax, eax
mov ecx, eax
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.0054e170