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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x625b84
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x682d00]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x682d00]
xor eax, esp
push eax
lea eax, [esp + 0x4a0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
movsx ecx, word [eax + 2]
mov dword [esp + 0x68], esi
test ecx, 0x800
je 0x56b5c4
test cl, 8
je 0x56b5bf
mov ecx, dword [eax + 4]
jmp 0x56b5d2
mov ecx, dword [eax + 0xc]
jmp 0x56b5d2
test byte [eax + 0x12], 8
je 0x56b5cf
mov ecx, dword [eax + 0x14]
jmp 0x56b5d2
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [ebp + 0xc]
sar edx, 1
cmp ecx, 2
jge 0x56b673
cmp ecx, 1
jne 0x56dc3d
test edx, edx
je 0x56dc3d
fldz
push 2
sub esp, 8
mov ecx, esp
fst qword [ecx]
mov dword [esp + 0x48], esp
sub esp, 8
mov ecx, esp
fstp qword [ecx]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], esp
mov dword [esp + 0x74], ecx
push edx
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x260]
mov dword [esp + 0x78], eax
call fcn.0051a8c0
mov ecx, dword [0x683a94]
push eax
mov dword [esp + 0x4ac], 0
call fcn.00582430
lea ecx, [esp + 0x244]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.0051b350
mov edx, dword [0x683a94]
mov eax, dword [esi + 0x34]
push 0
push 3
push edx
mov ecx, esi
call eax
jmp 0x56dc3d
xor edi, edi
cmp edx, edi
jne 0x56b688
push edi
push ecx
push eax
mov ecx, esi
call fcn.005472d0
jmp 0x56dc3d
push ecx
push eax
lea ecx, [esp + 0x374]
mov dword [esp + 0x24], edi
call fcn.00570ec0
lea ecx, [esp + 0x70]
mov dword [esp + 0x4a8], 1
call fcn.0057c9c0
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.005726c0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.0051a860
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.0051a860
push fcn.0051b350
push fcn.0051a860
push 2
push 0x24
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x4bc], 5
call fcn.005f9bc7
push fcn.0051b350
push fcn.0051a860
push 2
push 0x24
lea edx, [esp + 0x2a4]
push edx
mov byte [esp + 0x4bc], 6
call fcn.005f9bc7
push fcn.0051a4a0
push fcn.005eec00
push 3
push 0x10
lea eax, [esp + 0x178]
push eax
mov byte [esp + 0x4bc], 7
call fcn.005f9bc7
push fcn.0051a4a0
push fcn.005eec00
push 3
push 0x10
lea ecx, [esp + 0x1a8]
push ecx
mov byte [esp + 0x4bc], 8
call fcn.005f9bc7
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.0051fdc0
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.0051fdc0
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.0051a860
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.0051a860
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.0051a860
mov byte [esp + 0x4a8], 0xe
mov dword [esp + 0x18], edi
mov byte [esp + 0x17], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x38c], edi
je 0x56db00
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
ja 0x56dad5
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x38c]
push eax
call fcn.005c9c30
add esp, 4
test eax, eax
je 0x56d90c
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x5c]
call eax
push 6
mov ecx, edi
mov esi, eax
call fcn.005437a0
push 6
mov ecx, edi
call fcn.00566e90
cmp esi, 0x16
jne 0x56c337
mov eax, dword [0x683aa4]
test eax, eax
je 0x56c2a6
cmp dword [esp + 0x1c], 0
je 0x56c188
mov ebx, dword [esp + 0x38c]
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
push 0x3e8
lea edx, [esp + 0x1cc]
mov dword [esp + 0x64], ecx
push edx
lea ecx, [esp + 0x270]
mov dword [esp + 0x64], esi
call fcn.0051cda0
mov ecx, dword [eax]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x80], eax
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x38c]
add eax, 0xc
push eax
lea ecx, [esp + 0xf0]
push ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
mov dword [esp + 0xf4], esi
call fcn.00523bf0
add esp, 8
test eax, eax
jne 0x56d90c
mov edx, dword [esp + 0x290]
push eax
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x250]
call fcn.0057ca10
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x19c]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x174]
push ecx
lea esi, [ebx + 0xc]
push esi
lea ecx, [esp + 0x258]
mov byte [esp + 0x4bc], 0xf
call fcn.0057dbe0
test eax, eax
je 0x56bf90
push 0
push esi
lea ecx, [esp + 0x270]
call fcn.0057c480
test eax, eax
jne 0x56bf90
cmp dword [esp + 0x38], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], eax
jne 0x56ba24
cmp dword [esp + 0x34], 3
je 0x56ba24
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x56ba24
push 1
push 1
lea eax, [esp + 0x48]
push eax
sub esp, 0x2c
lea edx, [esp + 0x2a0]
mov ecx, esp
mov dword [esp + 0x74], esp
push edx
lea esi, [esp + 0x360]
lea edi, [esp + 0x214]
call fcn.00576e40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb8], esp
push ebx
mov byte [esp + 0x500], 0x10
call fcn.0057ca40
mov byte [esp + 0x4fc], 0xf
call fcn.005675b0
add esp, 0x54
test eax, eax
je 0x56ba10
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0040b250
test eax, eax
je 0x56ba24
add dword [esp + 0x18], 2
jmp 0x56ba24
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.0057e720
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x34], 1
jne 0x56bae1
cmp dword [esp + 0x38], 3
je 0x56baec
mov edx, dword [esp + 0x290]
cmp dword [esp + 0x28c], edx
je 0x56bae1
push 0
push 1
lea eax, [esp + 0x60]
push eax
sub esp, 0x2c
lea edx, [esp + 0x2a0]
mov ecx, esp
mov dword [esp + 0x9c], esp
push edx
lea esi, [esp + 0x384]
lea edi, [esp + 0x238]
call fcn.00576e40
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x90], esp
push ebx
mov byte [esp + 0x500], 0x11
call fcn.0057ca40
mov byte [esp + 0x4fc], 0xf
call fcn.005675b0
add esp, 0x54
test eax, eax
je 0x56baca
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.0040b250
test eax, eax
je 0x56bae1
inc dword [esp + 0x18]
jmp 0x56bae1
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebx
call fcn.0057e8d0
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x38], 3
jne 0x56bc33
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x16c]
call fcn.00582610
and byte [esp + 0x17], 0xfb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [0x683a94]
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22c]
push eax
push ecx
mov eax, 1
mov esi, 0x683aa4
call fcn.005678b0
mov ecx, dword [esp + 0x3a0]
add esp, 0x14
lea edx, [esp + 0x44]
push edx
call fcn.0057e8d0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x204]
call fcn.0051e8a0
mov esi, eax
test esi, esi
jne 0x56bbd6
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x56bbd6
lea ecx, [esp + 0x268]
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56bbd6
cmp dword [esp + 0x30], 4
jne 0x56bbd6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x29c]
call fcn.0051e8a0
mov esi, eax
test esi, esi
je 0x56bbd6
mov ecx, dword [0x683ae4]
sub ecx, 3
mov dword [0x683ae4], ecx
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x1fc]
push edx
call fcn.00582610
mov ecx, dword [esp + 0x290]
xor eax, eax
cmp dword [esp + 0x28c], ecx
lea edx, [esp + 0x18]
setne al
lea ecx, [esp + 0x44]
push eax
push 1
push edx
lea eax, [esp + 0x208]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x2b]
push edx
push eax
mov eax, dword [0x683ae0]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x683ae4
call fcn.005679a0
add esp, 0x28
jmp 0x56c16b
mov ebx, 3
cmp dword [esp + 0x34], ebx
jne 0x56bd84
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00582610
and byte [esp + 0x17], 0xfb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x200]
push eax
mov eax, dword [0x683ae0]
lea ecx, [esp + 0x1f]
push ecx
lea edx, [esp + 0x22c]
push edx
push eax
xor eax, eax
mov esi, 0x683ae4
call fcn.005678b0
add esp, 0x14
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0057e720
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0051e8a0
mov esi, eax
test esi, esi
jne 0x56bd27
mov ecx, dword [esp + 0x28c]
cmp ecx, dword [esp + 0x290]
je 0x56bd27
lea ecx, [esp + 0x268]
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56bd27
cmp dword [esp + 0x30], 4
jne 0x56bd27
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2e4]
call fcn.0051e8a0
mov esi, eax
test esi, esi
je 0x56bd27
mov ecx, dword [0x683aa4]
sub ecx, ebx
mov dword [0x683aa4], ecx
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x1d8]
push edx
call fcn.00582610
mov ecx, dword [esp + 0x290]
xor eax, eax
cmp dword [esp + 0x28c], ecx
lea edx, [esp + 0x18]
setne al
lea ecx, [esp + 0x44]
push eax
push 0
push edx
lea eax, [esp + 0x1e4]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
lea edx, [esp + 0x2b]
push edx
push eax
mov eax, dword [0x683a94]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x683aa4
call fcn.005679a0
add esp, 0x28
jmp 0x56c16b
mov edi, dword [esp + 0x18]
cmp edi, 2
je 0x56be35
cmp edi, ebx
je 0x56be35
test byte [esp + 0x17], 1
je 0x56bdc0
mov eax, dword [0x683aa4]
mov esi, 1
mov ecx, eax
add eax, esi
lea edx, [esp + 0x1dc]
mov dword [0x683aa4], eax
push edx
jmp 0x56be74
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x1d8]
push eax
call fcn.00582430
mov ecx, dword [0x683aa4]
add ecx, ebx
mov esi, 1
mov dword [0x683aa4], ecx
cmp dword [esp + 0x40], esi
jne 0x56be13
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x324]
push edx
call fcn.00582430
add dword [0x683aa4], ebx
jmp 0x56be82
cmp dword [esp + 0x1c], esi
jne 0x56be82
mov eax, ecx
shl eax, 4
add eax, dword [0x683a94]
add ecx, esi
mov dword [0x683aa4], ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
jmp 0x56be7d
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
mov esi, 1
lea edx, [esp + 0x1dc]
add eax, esi
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
add eax, esi
mov dword [0x683aa4], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.005823c0
cmp edi, esi
je 0x56bf43
cmp edi, ebx
je 0x56bf43
test byte [esp + 0x17], 2
je 0x56bec2
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
jmp 0x56c16b
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00582430
mov ecx, dword [0x683ae4]
add ecx, ebx
mov dword [0x683ae4], ecx
cmp dword [esp + 0x58], esi
jne 0x56bf13
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x348]
push edx
call fcn.00582430
add dword [0x683ae4], ebx
jmp 0x56c16b
cmp dword [esp + 0x6c], esi
jne 0x56c16b
mov eax, ecx
inc ecx
shl eax, 4
add eax, dword [0x683ae0]
mov dword [0x683ae4], ecx
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call fcn.005823c0
jmp 0x56c16b
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
add eax, esi
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [0x683ae4], eax
lea eax, [esp + 0x208]
push eax
call fcn.005823c0
jmp 0x56c16b
mov esi, dword [esp + 0x18]
mov ebx, 3
cmp esi, 2
je 0x56bfe4
cmp esi, ebx
je 0x56bfe4
test byte [esp + 0x17], 1
je 0x56bfc0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x683aa4], eax
push edx
jmp 0x56c01c
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x1d8]
push eax
call fcn.00582430
add dword [0x683aa4], ebx
jmp 0x56c02a
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
mov dword [0x683aa4], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.005823c0
cmp esi, 1
je 0x56c075
cmp esi, ebx
je 0x56c075
test byte [esp + 0x17], 2
je 0x56c051
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x683ae4], eax
push edx
jmp 0x56c0ad
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00582430
add dword [0x683ae4], ebx
jmp 0x56c0bb
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.005823c0
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
push ecx
lea ecx, [esp + 0x26c]
call fcn.00579560
add dword [0x683aa4], ebx
mov ecx, edi
call fcn.0056a7a0
mov edx, dword [0x683aa4]
mov eax, dword [0x683a94]
push 0
push edx
mov edx, dword [edi + 0x34]
push eax
mov ecx, edi
call edx
mov esi, dword [esp + 0x38c]
lea eax, [esi + 0xc]
push eax
lea ecx, [esi + 4]
mov dword [0x683aa4], 0
call fcn.00516a00
test eax, eax
je 0x56c16b
mov ecx, dword [0x683a94]
push ecx
mov ecx, esi
call fcn.0057d080
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x138], eax
call fcn.005823c0
mov dword [0x683aa4], ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0057ca70
mov edi, dword [esp + 0x68]
jmp 0x56c311
mov edx, dword [0x683ae4]
mov esi, dword [esp + 0x38c]
shl edx, 4
add edx, dword [0x683ae0]
lea ecx, [esp + 0x34]
push ecx
push edx
shl eax, 4
add eax, dword [0x683a94]
lea ecx, [esp + 0x40]
push ecx
push eax
add esi, 0xc
push esi
lea ecx, [esp + 0x84]
call fcn.0057dbe0
test eax, eax
je 0x56c1ee
push esi
lea ecx, [esp + 0x74]
call fcn.0057ea80
test eax, eax
jne 0x56c1ee
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add dword [0x683aa4], edx
add dword [0x683ae4], eax
jmp 0x56c311
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057d3e0
mov ebx, 3
add dword [0x683aa4], ebx
mov ecx, edi
call fcn.0056a7a0
mov edx, dword [0x683aa4]
mov eax, dword [0x683a94]
push 0
push edx
mov edx, dword [edi + 0x34]
push eax
mov ecx, edi
call edx
mov esi, dword [esp + 0x38c]
lea eax, [esi + 0xc]
push eax
lea ecx, [esi + 4]
mov dword [0x683aa4], 0
call fcn.00516a00
test eax, eax
je 0x56c318
mov ecx, dword [0x683a94]
push ecx
mov ecx, esi
call fcn.0057d080
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x144]
push edx
mov dword [esp + 0x148], eax
call fcn.005823c0
mov dword [0x683aa4], ebx
jmp 0x56c311
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x56c2bd
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 8]
je 0x56c318
mov edx, dword [0x683a94]
push edx
mov ecx, esi
call fcn.0057d080
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0x110], eax
call fcn.005823c0
mov dword [0x683aa4], 3
mov esi, dword [esp + 0x38c]
push esi
lea ecx, [esp + 0x74]
call fcn.0057f760
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x56d90c
cmp esi, 0x11
jne 0x56d90c
xor esi, esi
cmp dword [0x683aa4], esi
je 0x56d674
cmp dword [esp + 0x1c], esi
je 0x56c701
mov ebx, dword [esp + 0x18]
cmp ebx, 1
je 0x56c3a8
cmp ebx, 3
je 0x56c3a8
test byte [esp + 0x17], 2
je 0x56c383
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
lea eax, [esp + 0x200]
jmp 0x56c3df
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.00582430
add dword [0x683ae4], 3
jmp 0x56c3ee
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
lea eax, [esp + 0x208]
shl ecx, 4
add ecx, dword [0x683ae0]
push eax
call fcn.005823c0
cmp ebx, 2
je 0x56c445
cmp ebx, 3
je 0x56c445
test byte [esp + 0x17], 1
je 0x56c416
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x683aa4], eax
push edx
jmp 0x56c47d
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x1d8]
push eax
call fcn.00582430
mov eax, dword [0x683aa4]
mov ebx, 3
add eax, ebx
mov dword [0x683aa4], eax
jmp 0x56c495
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
mov dword [0x683aa4], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ebx, 3
shl eax, 4
add eax, dword [0x683a94]
lea ecx, [esp + 0x268]
push eax
call fcn.00579560
add dword [0x683aa4], ebx
mov ecx, edi
call fcn.0056a7a0
mov ecx, dword [0x683aa4]
mov edx, dword [0x683a94]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x683a94]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x683aa4], esi
call fcn.00578e70
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov dword [0x683aa4], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0x108], edx
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x108], eax
call fcn.005823c0
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
cmp eax, dword [ecx + 0x28]
je 0x56d8cf
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56d8c8
mov edx, dword [esp + 0x38c]
lea ecx, [esp + 0x2dc]
push ecx
sub esp, 0x2c
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
lea edi, [esp + 0x2c8]
call fcn.00576e40
mov ecx, edi
call fcn.00566da0
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x56c6cb
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.00516a00
test eax, eax
je 0x56c5d2
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], ebx
jmp 0x56c618
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [0x683aa4], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.005823c0
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.00516a00
test eax, eax
je 0x56c654
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x294]
push edx
call fcn.00582430
add dword [0x683ae4], ebx
jmp 0x56c69a
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [0x683ae4], eax
lea eax, [esp + 0x298]
push eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x200]
call fcn.0051c7f0
mov dword [esp + 0x18], esi
jmp 0x56d88a
cmp eax, 2
jne 0x56c6f8
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.0051c7f0
mov dword [esp + 0x18], esi
jmp 0x56d88a
push 0x3e8
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x394]
call fcn.0051cd00
mov ecx, dword [esp + 0x38c]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x6c], esi
cmp eax, dword [ecx + 0x28]
je 0x56c7ff
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56c7f8
mov edx, dword [esp + 0x38c]
lea ecx, [esp + 0x2dc]
push ecx
sub esp, 0x2c
mov ecx, esp
mov dword [esp + 0x94], esp
push edx
lea esi, [esp + 0x2c8]
call fcn.00576e40
mov ecx, esi
call fcn.00566da0
mov dword [esp + 0x60], eax
add esp, 0x30
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
mov ecx, esi
push ecx
lea ecx, [esp + 0x200]
call fcn.0051c7f0
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], 0
call fcn.0040b250
test eax, eax
je 0x56c7da
mov dword [esp + 0x18], 2
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.0040b250
test eax, eax
je 0x56c820
inc dword [esp + 0x18]
jmp 0x56c820
mov ecx, dword [esp + 0x38c]
lea edx, [esp + 0x1fc]
push edx
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.00566c00
mov edi, dword [esp + 0x6c]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x19c]
push edx
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x174]
push ecx
lea edx, [esp + 0xbc]
xor esi, esi
push edx
lea ecx, [esp + 0x84]
mov dword [esp + 0x30], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0xc0], ebx
call fcn.0057dbe0
test eax, eax
je 0x56d2bd
mov ecx, dword [esp + 0x38c]
push 1
lea eax, [esp + 0x78]
push eax
call fcn.0057c480
test eax, eax
jne 0x56d2bd
cmp dword [esp + 0x38], 1
jne 0x56c941
cmp dword [esp + 0x34], 3
je 0x56c941
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56c941
push 1
push esi
lea edx, [esp + 0x24]
push edx
sub esp, 0x2c
mov ecx, esp
mov dword [esp + 0x9c], esp
push eax
lea esi, [esp + 0x360]
lea edi, [esp + 0x214]
call fcn.00576e40
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xe0], esp
push eax
mov byte [esp + 0x500], 0x12
call fcn.0057ca40
mov byte [esp + 0x4fc], 0xe
call fcn.005675b0
add esp, 0x54
test eax, eax
jne 0x56c941
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057e720
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x50]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov ebx, 1
lea edi, [ebx + 2]
cmp dword [esp + 0x34], ebx
jne 0x56ca02
cmp dword [esp + 0x38], edi
je 0x56ca0c
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56ca02
push 0
push 0
lea edx, [esp + 0x48]
push edx
sub esp, 0x2c
mov ecx, esp
mov dword [esp + 0xc4], esp
push eax
lea esi, [esp + 0x384]
lea edi, [esp + 0x238]
call fcn.00576e40
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
mov byte [esp + 0x500], 0x13
call fcn.0057ca40
mov byte [esp + 0x4fc], 0xe
call fcn.005675b0
add esp, 0x54
test eax, eax
jne 0x56c9fd
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057e8d0
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov edi, 3
cmp dword [esp + 0x38], edi
jne 0x56ce6c
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x16c]
call fcn.00582610
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x1dc]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56ca46
or byte [esp + 0x17], 4
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x224]
call fcn.0051e210
test byte [esp + 0x17], 4
je 0x56ca87
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
jmp 0x56caa9
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
lea eax, [esp + 0x220]
push eax
call fcn.00582430
add dword [0x683aa4], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057e8d0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x204]
call fcn.0051e8a0
mov esi, eax
test esi, esi
jne 0x56cb3b
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56ccbd
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56ccb6
cmp dword [esp + 0x30], 4
jne 0x56ccb6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x2c0]
call fcn.0051e8a0
mov esi, eax
test esi, esi
je 0x56cb3b
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x200]
call fcn.0051c7f0
mov dword [esp + 0x6c], ebx
cmp esi, ebx
jne 0x56cba5
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x114]
mov dword [esp + 0x114], eax
push edx
lea eax, [esp + 0x20c]
push eax
mov dword [esp + 0x120], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56cb76
or byte [esp + 0x17], 2
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x124]
mov dword [esp + 0x124], ecx
push eax
lea ecx, [esp + 0x200]
mov dword [esp + 0x12c], edx
call fcn.0051e0e0
jmp 0x56d35a
cmp esi, 2
jne 0x56ccb6
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.00529f60
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00529f60
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x56cc50
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xc4]
mov dword [esp + 0xc4], edx
push ecx
lea edx, [esp + 0x20c]
push edx
mov dword [esp + 0xd0], eax
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56cc21
or byte [esp + 0x17], 2
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0xcc]
mov dword [esp + 0xd0], ecx
push edx
lea ecx, [esp + 0x200]
mov dword [esp + 0xd0], eax
call fcn.0051e0e0
jmp 0x56d35a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x14c]
mov dword [esp + 0x14c], eax
push edx
lea eax, [esp + 0x20c]
push eax
mov dword [esp + 0x158], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56cc87
or byte [esp + 0x17], 2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0xdc]
mov dword [esp + 0xdc], ecx
push eax
lea ecx, [esp + 0x200]
mov dword [esp + 0xe4], edx
call fcn.0051e0e0
jmp 0x56d35a
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56ce46
lea eax, [esp + 0x168]
push eax
call fcn.00578e70
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x16c]
call fcn.00582610
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.0051e8a0
test eax, eax
je 0x56cd61
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x11c]
mov dword [esp + 0x11c], ecx
push eax
lea ecx, [esp + 0x224]
mov dword [esp + 0x124], edx
call fcn.0051e210
lea ecx, [esp + 0x220]
call fcn.0051de30
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.00582430
add dword [0x683ae4], edi
jmp 0x56d35a
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x204]
call fcn.00516a00
test eax, eax
je 0x56ce20
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x24c]
call fcn.0051fde0
push 0
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x250]
mov byte [esp + 0x4b4], 0x14
call fcn.00520fe0
test eax, eax
mov eax, dword [0x683ae4]
je 0x56cdeb
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], ecx
mov ecx, eax
add eax, ebx
mov dword [0x683ae4], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x98], edx
push eax
jmp 0x56cdf9
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
mov dword [0x683ae4], eax
push edx
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.005823c0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0051fe50
jmp 0x56d35a
mov eax, dword [0x683ae4]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [0x683ae4], eax
lea eax, [esp + 0x50]
push eax
call fcn.005823c0
jmp 0x56d35a
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
jmp 0x56d35a
cmp dword [esp + 0x34], edi
jne 0x56d35a
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x19c]
call fcn.00582610
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x200]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56ceb0
or byte [esp + 0x17], 4
lea eax, [esp + 0x200]
push eax
lea ecx, [esp + 0x224]
call fcn.0051e210
test byte [esp + 0x17], 4
je 0x56cef1
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
jmp 0x56cf13
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea eax, [esp + 0x220]
push eax
call fcn.00582430
add dword [0x683ae4], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057e720
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0051e8a0
mov esi, eax
test esi, esi
jne 0x56cfa5
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56d127
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56d120
cmp dword [esp + 0x30], 4
jne 0x56d120
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x308]
call fcn.0051e8a0
mov esi, eax
test esi, esi
je 0x56cfa5
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
mov dword [esp + 0x58], ebx
cmp esi, ebx
jne 0x56d00f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x13c]
mov dword [esp + 0x13c], eax
push edx
lea eax, [esp + 0x1e8]
push eax
mov dword [esp + 0x148], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56cfe0
or byte [esp + 0x17], 1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xfc]
mov dword [esp + 0xfc], ecx
push eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x104], edx
call fcn.0051e0e0
jmp 0x56d35a
cmp esi, 2
jne 0x56d120
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.00529f60
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00529f60
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x56d0ba
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x12c]
mov dword [esp + 0x12c], edx
push ecx
lea edx, [esp + 0x1e8]
push edx
mov dword [esp + 0x138], eax
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56d08b
or byte [esp + 0x17], 1
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0xbc]
mov dword [esp + 0xc0], ecx
push edx
lea ecx, [esp + 0x1dc]
mov dword [esp + 0xc0], eax
call fcn.0051e0e0
jmp 0x56d35a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xb4]
mov dword [esp + 0xb4], eax
push edx
lea eax, [esp + 0x1e8]
push eax
mov dword [esp + 0xc0], ecx
call fcn.00523bf0
add esp, 8
test eax, eax
je 0x56d0f1
or byte [esp + 0x17], 1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0xd4]
mov dword [esp + 0xd4], ecx
push eax
lea ecx, [esp + 0x1dc]
mov dword [esp + 0xdc], edx
call fcn.0051e0e0
jmp 0x56d35a
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56d297
lea eax, [esp + 0x198]
push eax
call fcn.00578e70
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00582610
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.0051e8a0
test eax, eax
je 0x56d1bf
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xe4]
mov dword [esp + 0xe4], ecx
push eax
lea ecx, [esp + 0x224]
mov dword [esp + 0xec], edx
call fcn.0051e0e0
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], edi
jmp 0x56d35a
lea edx, [esp + 0x22c]
push edx
lea ecx, [esp + 0x1e0]
call fcn.00516a00
test eax, eax
je 0x56d271
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x24c]
call fcn.0051fde0
push 0
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x250]
mov byte [esp + 0x4b4], 0x15
call fcn.00520fe0
test eax, eax
mov eax, dword [0x683aa4]
je 0x56d255
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf4], ecx
mov ecx, eax
add eax, ebx
mov dword [0x683aa4], eax
lea eax, [esp + 0xf4]
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [esp + 0xf8], edx
push eax
jmp 0x56ce02
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [0x683aa4], eax
push edx
jmp 0x56ce02
mov eax, dword [0x683aa4]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [0x683aa4], eax
lea eax, [esp + 0x50]
push eax
call fcn.005823c0
jmp 0x56d35a
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
jmp 0x56d35a
mov eax, dword [0x683aa4]
shl eax, 4
add eax, dword [0x683a94]
lea ecx, [esp + 0x70]
push eax
call fcn.0057d3e0
mov ebx, 3
add dword [0x683aa4], ebx
mov ecx, edi
call fcn.0056a7a0
mov ecx, dword [0x683aa4]
mov edx, dword [0x683a94]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x683a94]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x683aa4], esi
call fcn.00578e70
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov dword [0x683aa4], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], eax
call fcn.005823c0
mov edi, ebx
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x56d601
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56d601
cmp dword [esp + 0x30], 4
jne 0x56d601
cmp dword [esp + 0x6c], 0
jne 0x56d4c1
cmp dword [esp + 0x40], 1
jne 0x56d3c2
lea ecx, [esp + 0x348]
push ecx
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.00582430
add dword [0x683ae4], edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x248]
call fcn.0051db50
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x4ac], 0x16
call fcn.0051c7f0
lea ecx, [esp + 0x208]
push ecx
lea ecx, [esp + 0x204]
call fcn.0040b250
test eax, eax
je 0x56d42b
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x200]
call fcn.0051c7f0
mov dword [esp + 0x30], 2
jmp 0x56d4ad
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.00516a00
test eax, eax
je 0x56d467
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.00582430
add dword [0x683ae4], edi
jmp 0x56d4ad
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [0x683ae4], eax
lea eax, [esp + 0x250]
push eax
call fcn.005823c0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0051b350
cmp dword [esp + 0x58], 0
jne 0x56d5f4
cmp dword [esp + 0x1c], 1
jne 0x56d4f5
lea ecx, [esp + 0x324]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], edi
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x248]
call fcn.0051db50
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x4ac], 0x17
call fcn.0051c7f0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.0040b250
test eax, eax
je 0x56d55e
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
mov dword [esp + 0x30], 2
jmp 0x56d5e0
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.00516a00
test eax, eax
je 0x56d59a
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], edi
jmp 0x56d5e0
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [0x683aa4], eax
lea eax, [esp + 0x250]
push eax
call fcn.005823c0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0051b350
mov dword [esp + 0x18], 0
jmp 0x56d88a
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56d8ec
mov esi, 1
cmp dword [esp + 0x1c], esi
jne 0x56d642
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x324]
push edx
call fcn.00582430
add dword [0x683aa4], 3
cmp dword [esp + 0x40], esi
jne 0x56d8ec
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea eax, [esp + 0x348]
push eax
call fcn.00582430
add dword [0x683ae4], 3
jmp 0x56d8ec
mov ecx, dword [0x683a94]
and byte [esp + 0x17], 4
push ecx
mov ecx, dword [esp + 0x390]
call fcn.00578e70
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
mov eax, dword [0x683a94]
mov edi, 3
mov dword [0x683aa4], edi
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], eax
call fcn.005823c0
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x56d8cf
call fcn.0051dfc0
fcomp qword [0x6325e8]
fnstsw ax
test ah, 0x41
jne 0x56d8c8
mov edx, dword [esp + 0x38c]
lea ecx, [esp + 0x2dc]
push ecx
sub esp, 0x2c
mov ecx, esp
mov dword [esp + 0xbc], esp
push edx
lea esi, [esp + 0x2c8]
call fcn.00576e40
mov ecx, esi
call fcn.00566da0
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x56d85d
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.00516a00
test eax, eax
je 0x56d777
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], edi
jmp 0x56d7bd
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683a94]
mov dword [0x683aa4], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.005823c0
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.00516a00
test eax, eax
je 0x56d7f9
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x294]
push edx
call fcn.00582430
add dword [0x683ae4], edi
jmp 0x56d83f
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x683ae0]
mov dword [0x683ae4], eax
lea eax, [esp + 0x298]
push eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x56d87e
cmp eax, 2
jne 0x56d88a
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051c7f0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.0051c7f0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.0040b250
test eax, eax
je 0x56d8aa
mov dword [esp + 0x18], 2
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x204]
call fcn.0040b250
test eax, eax
je 0x56d8ec
inc dword [esp + 0x18]
jmp 0x56d8ec
mov ecx, dword [esp + 0x38c]
lea eax, [esp + 0x1fc]
push eax
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.00566c00
mov dword [esp + 0x1c], eax
add esp, 4
mov ecx, dword [esp + 0x38c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.00576c20
mov edi, dword [esp + 0x68]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x36c]
call fcn.005710d0
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
jbe 0x56b815
cmp dword [esp + 0x1c], 0
je 0x56da97
push 6
mov ecx, edi
call fcn.005437a0
push 6
mov ecx, edi
call fcn.00566e90
mov esi, dword [esp + 0x18]
mov edi, 3
cmp esi, 2
je 0x56d99c
cmp esi, edi
je 0x56d99c
test byte [esp + 0x17], 1
je 0x56d978
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
mov dword [0x683aa4], eax
lea eax, [esp + 0x1dc]
jmp 0x56d9d3
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
call fcn.00582430
add dword [0x683aa4], edi
jmp 0x56d9e2
mov eax, dword [0x683aa4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683a94]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x683aa4], eax
call fcn.005823c0
mov eax, dword [0x683aa4]
mov ecx, eax
inc eax
mov dword [0x683aa4], eax
lea eax, [esp + 0x1e4]
shl ecx, 4
add ecx, dword [0x683a94]
push eax
call fcn.005823c0
cmp esi, 1
je 0x56da2d
cmp esi, edi
je 0x56da2d
test byte [esp + 0x17], 2
je 0x56da09
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x683ae4], eax
push edx
jmp 0x56da65
mov ecx, dword [0x683ae4]
shl ecx, 4
add ecx, dword [0x683ae0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00582430
add dword [0x683ae4], edi
jmp 0x56da73
mov eax, dword [0x683ae4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x683ae0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x683ae4], eax
call fcn.005823c0
mov eax, dword [0x683ae4]
mov ecx, eax
inc eax
mov dword [0x683ae4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x683ae0]
call fcn.005823c0
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
push ecx
lea ecx, [esp + 0x26c]
call fcn.00579560
add dword [0x683aa4], edi
jmp 0x56dad5
cmp dword [esp + 0x3c], 0
je 0x56dad5
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x74]
jne 0x56dab5
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x56dad5
mov ecx, dword [0x683aa4]
shl ecx, 4
add ecx, dword [0x683a94]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057d3e0
add dword [0x683aa4], 3
mov esi, dword [esp + 0x68]
mov ecx, esi
call fcn.0056a7a0
mov edx, dword [0x683aa4]
mov eax, dword [0x683a94]
push 0
push edx
mov edx, dword [esi + 0x34]
push eax
mov ecx, esi
call edx
mov dword [0x683aa4], 0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.0051b350
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.0051b350
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.0051b350
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.0051fe50
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.0051fe50
push fcn.0051a4a0
push 3
push 0x10
lea eax, [esp + 0x1a4]
push eax
mov byte [esp + 0x4b8], 8
call fcn.005f9b64
push fcn.0051a4a0
push 3
push 0x10
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x4b8], 7
call fcn.005f9b64
push fcn.0051b350
push 2
push 0x24
lea edx, [esp + 0x2a0]
push edx
mov byte [esp + 0x4b8], 6
call fcn.005f9b64
push fcn.0051b350
push 2
push 0x24
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0x4b8], 5
call fcn.005f9b64
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.0051b350
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.0051b350
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00572710
lea ecx, [esp + 0x70]
mov byte [esp + 0x4a8], 1
call fcn.0057ca70
lea ecx, [esp + 0x36c]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.00570110
mov ecx, dword [esp + 0x4a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x488]
xor ecx, esp
call fcn.005f9aee
mov esp, ebp
pop ebp
ret 8