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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x627ac4
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x685e38]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x685e38]
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 0x56cc54
test cl, 8
je 0x56cc4f
mov ecx, dword [eax + 4]
jmp 0x56cc62
mov ecx, dword [eax + 0xc]
jmp 0x56cc62
test byte [eax + 0x12], 8
je 0x56cc5f
mov ecx, dword [eax + 0x14]
jmp 0x56cc62
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [ebp + 0xc]
sar edx, 1
cmp ecx, 2
jge 0x56cd03
cmp ecx, 1
jne 0x56f2cd
test edx, edx
je 0x56f2cd
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.0051b990
mov ecx, dword [0x686bbc]
push eax
mov dword [esp + 0x4ac], 0
call fcn.00583ab0
lea ecx, [esp + 0x244]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.0051c420
mov edx, dword [0x686bbc]
mov eax, dword [esi + 0x34]
push 0
push 3
push edx
mov ecx, esi
call eax
jmp 0x56f2cd
xor edi, edi
cmp edx, edi
jne 0x56cd18
push edi
push ecx
push eax
mov ecx, esi
call fcn.00548980
jmp 0x56f2cd
push ecx
push eax
lea ecx, [esp + 0x374]
mov dword [esp + 0x24], edi
call fcn.00572550
lea ecx, [esp + 0x70]
mov dword [esp + 0x4a8], 1
call fcn.0057e050
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00573d50
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.0051b930
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.0051b930
push fcn.0051c420
push fcn.0051b930
push 2
push 0x24
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x4bc], 5
call fcn.005fbaa7
push fcn.0051c420
push fcn.0051b930
push 2
push 0x24
lea edx, [esp + 0x2a4]
push edx
mov byte [esp + 0x4bc], 6
call fcn.005fbaa7
push fcn.004f2200
push fcn.005f06c0
push 3
push 0x10
lea eax, [esp + 0x178]
push eax
mov byte [esp + 0x4bc], 7
call fcn.005fbaa7
push fcn.004f2200
push fcn.005f06c0
push 3
push 0x10
lea ecx, [esp + 0x1a8]
push ecx
mov byte [esp + 0x4bc], 8
call fcn.005fbaa7
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.00520ea0
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.00520ea0
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.0051b930
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.0051b930
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.0051b930
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 0x56f190
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
ja 0x56f165
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x38c]
push eax
call fcn.005cb2e0
add esp, 4
test eax, eax
je 0x56ef9c
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.00544e60
push 6
mov ecx, edi
call fcn.00568520
cmp esi, 0x16
jne 0x56d9c7
mov eax, dword [0x686bcc]
test eax, eax
je 0x56d936
cmp dword [esp + 0x1c], 0
je 0x56d818
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.0051de80
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.00524de0
add esp, 8
test eax, eax
jne 0x56ef9c
mov edx, dword [esp + 0x290]
push eax
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x250]
call fcn.0057e0a0
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.0057f270
test eax, eax
je 0x56d620
push 0
push esi
lea ecx, [esp + 0x270]
call fcn.0057db10
test eax, eax
jne 0x56d620
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 0x56d0b4
cmp dword [esp + 0x34], 3
je 0x56d0b4
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x56d0b4
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.005784d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb8], esp
push ebx
mov byte [esp + 0x500], 0x10
call fcn.0057e0d0
mov byte [esp + 0x4fc], 0xf
call fcn.00568c40
add esp, 0x54
test eax, eax
je 0x56d0a0
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0040b230
test eax, eax
je 0x56d0b4
add dword [esp + 0x18], 2
jmp 0x56d0b4
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.0057fdb0
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x34], 1
jne 0x56d171
cmp dword [esp + 0x38], 3
je 0x56d17c
mov edx, dword [esp + 0x290]
cmp dword [esp + 0x28c], edx
je 0x56d171
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.005784d0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x90], esp
push ebx
mov byte [esp + 0x500], 0x11
call fcn.0057e0d0
mov byte [esp + 0x4fc], 0xf
call fcn.00568c40
add esp, 0x54
test eax, eax
je 0x56d15a
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.0040b230
test eax, eax
je 0x56d171
inc dword [esp + 0x18]
jmp 0x56d171
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebx
call fcn.0057ff60
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x38], 3
jne 0x56d2c3
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x16c]
call fcn.00583c90
and byte [esp + 0x17], 0xfb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [0x686bbc]
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22c]
push eax
push ecx
mov eax, 1
mov esi, 0x686bcc
call fcn.00568f40
mov ecx, dword [esp + 0x3a0]
add esp, 0x14
lea edx, [esp + 0x44]
push edx
call fcn.0057ff60
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x204]
call fcn.0051f980
mov esi, eax
test esi, esi
jne 0x56d266
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x56d266
lea ecx, [esp + 0x268]
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56d266
cmp dword [esp + 0x30], 4
jne 0x56d266
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x29c]
call fcn.0051f980
mov esi, eax
test esi, esi
je 0x56d266
mov ecx, dword [0x686c0c]
sub ecx, 3
mov dword [0x686c0c], ecx
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x1fc]
push edx
call fcn.00583c90
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 [0x686c08]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x686c0c
call fcn.00569030
add esp, 0x28
jmp 0x56d7fb
mov ebx, 3
cmp dword [esp + 0x34], ebx
jne 0x56d414
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00583c90
and byte [esp + 0x17], 0xfb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x200]
push eax
mov eax, dword [0x686c08]
lea ecx, [esp + 0x1f]
push ecx
lea edx, [esp + 0x22c]
push edx
push eax
xor eax, eax
mov esi, 0x686c0c
call fcn.00568f40
add esp, 0x14
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0057fdb0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0051f980
mov esi, eax
test esi, esi
jne 0x56d3b7
mov ecx, dword [esp + 0x28c]
cmp ecx, dword [esp + 0x290]
je 0x56d3b7
lea ecx, [esp + 0x268]
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56d3b7
cmp dword [esp + 0x30], 4
jne 0x56d3b7
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2e4]
call fcn.0051f980
mov esi, eax
test esi, esi
je 0x56d3b7
mov ecx, dword [0x686bcc]
sub ecx, ebx
mov dword [0x686bcc], ecx
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x1d8]
push edx
call fcn.00583c90
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 [0x686bbc]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x686bcc
call fcn.00569030
add esp, 0x28
jmp 0x56d7fb
mov edi, dword [esp + 0x18]
cmp edi, 2
je 0x56d4c5
cmp edi, ebx
je 0x56d4c5
test byte [esp + 0x17], 1
je 0x56d450
mov eax, dword [0x686bcc]
mov esi, 1
mov ecx, eax
add eax, esi
lea edx, [esp + 0x1dc]
mov dword [0x686bcc], eax
push edx
jmp 0x56d504
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x1d8]
push eax
call fcn.00583ab0
mov ecx, dword [0x686bcc]
add ecx, ebx
mov esi, 1
mov dword [0x686bcc], ecx
cmp dword [esp + 0x40], esi
jne 0x56d4a3
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x324]
push edx
call fcn.00583ab0
add dword [0x686bcc], ebx
jmp 0x56d512
cmp dword [esp + 0x1c], esi
jne 0x56d512
mov eax, ecx
shl eax, 4
add eax, dword [0x686bbc]
add ecx, esi
mov dword [0x686bcc], ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
jmp 0x56d50d
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
mov esi, 1
lea edx, [esp + 0x1dc]
add eax, esi
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
add eax, esi
mov dword [0x686bcc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583a80
cmp edi, esi
je 0x56d5d3
cmp edi, ebx
je 0x56d5d3
test byte [esp + 0x17], 2
je 0x56d552
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
jmp 0x56d7fb
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea eax, [esp + 0x1fc]
push eax
call fcn.00583ab0
mov ecx, dword [0x686c0c]
add ecx, ebx
mov dword [0x686c0c], ecx
cmp dword [esp + 0x58], esi
jne 0x56d5a3
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x348]
push edx
call fcn.00583ab0
add dword [0x686c0c], ebx
jmp 0x56d7fb
cmp dword [esp + 0x6c], esi
jne 0x56d7fb
mov eax, ecx
inc ecx
shl eax, 4
add eax, dword [0x686c08]
mov dword [0x686c0c], ecx
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call fcn.00583a80
jmp 0x56d7fb
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
add eax, esi
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [0x686c0c], eax
lea eax, [esp + 0x208]
push eax
call fcn.00583a80
jmp 0x56d7fb
mov esi, dword [esp + 0x18]
mov ebx, 3
cmp esi, 2
je 0x56d674
cmp esi, ebx
je 0x56d674
test byte [esp + 0x17], 1
je 0x56d650
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x686bcc], eax
push edx
jmp 0x56d6ac
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x1d8]
push eax
call fcn.00583ab0
add dword [0x686bcc], ebx
jmp 0x56d6ba
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
mov dword [0x686bcc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583a80
cmp esi, 1
je 0x56d705
cmp esi, ebx
je 0x56d705
test byte [esp + 0x17], 2
je 0x56d6e1
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x686c0c], eax
push edx
jmp 0x56d73d
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea eax, [esp + 0x1fc]
push eax
call fcn.00583ab0
add dword [0x686c0c], ebx
jmp 0x56d74b
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583a80
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0057abf0
add dword [0x686bcc], ebx
mov ecx, edi
call fcn.0056be30
mov edx, dword [0x686bcc]
mov eax, dword [0x686bbc]
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 [0x686bcc], 0
call fcn.00517b40
test eax, eax
je 0x56d7fb
mov ecx, dword [0x686bbc]
push ecx
mov ecx, esi
call fcn.0057e710
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x138], eax
call fcn.00583a80
mov dword [0x686bcc], ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0057e100
mov edi, dword [esp + 0x68]
jmp 0x56d9a1
mov edx, dword [0x686c0c]
mov esi, dword [esp + 0x38c]
shl edx, 4
add edx, dword [0x686c08]
lea ecx, [esp + 0x34]
push ecx
push edx
shl eax, 4
add eax, dword [0x686bbc]
lea ecx, [esp + 0x40]
push ecx
push eax
add esi, 0xc
push esi
lea ecx, [esp + 0x84]
call fcn.0057f270
test eax, eax
je 0x56d87e
push esi
lea ecx, [esp + 0x74]
call fcn.00580110
test eax, eax
jne 0x56d87e
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add dword [0x686bcc], edx
add dword [0x686c0c], eax
jmp 0x56d9a1
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057ea70
mov ebx, 3
add dword [0x686bcc], ebx
mov ecx, edi
call fcn.0056be30
mov edx, dword [0x686bcc]
mov eax, dword [0x686bbc]
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 [0x686bcc], 0
call fcn.00517b40
test eax, eax
je 0x56d9a8
mov ecx, dword [0x686bbc]
push ecx
mov ecx, esi
call fcn.0057e710
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x144]
push edx
mov dword [esp + 0x148], eax
call fcn.00583a80
mov dword [0x686bcc], ebx
jmp 0x56d9a1
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x56d94d
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 8]
je 0x56d9a8
mov edx, dword [0x686bbc]
push edx
mov ecx, esi
call fcn.0057e710
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0x110], eax
call fcn.00583a80
mov dword [0x686bcc], 3
mov esi, dword [esp + 0x38c]
push esi
lea ecx, [esp + 0x74]
call fcn.00580de0
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x56ef9c
cmp esi, 0x11
jne 0x56ef9c
xor esi, esi
cmp dword [0x686bcc], esi
je 0x56ed04
cmp dword [esp + 0x1c], esi
je 0x56dd91
mov ebx, dword [esp + 0x18]
cmp ebx, 1
je 0x56da38
cmp ebx, 3
je 0x56da38
test byte [esp + 0x17], 2
je 0x56da13
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
lea eax, [esp + 0x200]
jmp 0x56da6f
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583ab0
add dword [0x686c0c], 3
jmp 0x56da7e
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
lea eax, [esp + 0x208]
shl ecx, 4
add ecx, dword [0x686c08]
push eax
call fcn.00583a80
cmp ebx, 2
je 0x56dad5
cmp ebx, 3
je 0x56dad5
test byte [esp + 0x17], 1
je 0x56daa6
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x686bcc], eax
push edx
jmp 0x56db0d
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x1d8]
push eax
call fcn.00583ab0
mov eax, dword [0x686bcc]
mov ebx, 3
add eax, ebx
mov dword [0x686bcc], eax
jmp 0x56db25
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
mov dword [0x686bcc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ebx, 3
shl eax, 4
add eax, dword [0x686bbc]
lea ecx, [esp + 0x268]
push eax
call fcn.0057abf0
add dword [0x686bcc], ebx
mov ecx, edi
call fcn.0056be30
mov ecx, dword [0x686bcc]
mov edx, dword [0x686bbc]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x686bbc]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x686bcc], esi
call fcn.0057a500
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov dword [0x686bcc], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0x108], edx
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x108], eax
call fcn.00583a80
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
cmp eax, dword [ecx + 0x28]
je 0x56ef5f
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56ef58
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.005784d0
mov ecx, edi
call fcn.00568420
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x56dd5b
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.00517b40
test eax, eax
je 0x56dc62
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], ebx
jmp 0x56dca8
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [0x686bcc], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.00583a80
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.00517b40
test eax, eax
je 0x56dce4
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x294]
push edx
call fcn.00583ab0
add dword [0x686c0c], ebx
jmp 0x56dd2a
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [0x686c0c], eax
lea eax, [esp + 0x298]
push eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x200]
call fcn.0051d8c0
mov dword [esp + 0x18], esi
jmp 0x56ef1a
cmp eax, 2
jne 0x56dd88
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.0051d8c0
mov dword [esp + 0x18], esi
jmp 0x56ef1a
push 0x3e8
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x394]
call fcn.0051dde0
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 0x56de8f
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56de88
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.005784d0
mov ecx, esi
call fcn.00568420
mov dword [esp + 0x60], eax
add esp, 0x30
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
mov ecx, esi
push ecx
lea ecx, [esp + 0x200]
call fcn.0051d8c0
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], 0
call fcn.0040b230
test eax, eax
je 0x56de6a
mov dword [esp + 0x18], 2
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.0040b230
test eax, eax
je 0x56deb0
inc dword [esp + 0x18]
jmp 0x56deb0
mov ecx, dword [esp + 0x38c]
lea edx, [esp + 0x1fc]
push edx
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.00568280
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.0057f270
test eax, eax
je 0x56e94d
mov ecx, dword [esp + 0x38c]
push 1
lea eax, [esp + 0x78]
push eax
call fcn.0057db10
test eax, eax
jne 0x56e94d
cmp dword [esp + 0x38], 1
jne 0x56dfd1
cmp dword [esp + 0x34], 3
je 0x56dfd1
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56dfd1
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.005784d0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xe0], esp
push eax
mov byte [esp + 0x500], 0x12
call fcn.0057e0d0
mov byte [esp + 0x4fc], 0xe
call fcn.00568c40
add esp, 0x54
test eax, eax
jne 0x56dfd1
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057fdb0
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x50]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov ebx, 1
lea edi, [ebx + 2]
cmp dword [esp + 0x34], ebx
jne 0x56e092
cmp dword [esp + 0x38], edi
je 0x56e09c
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56e092
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.005784d0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
mov byte [esp + 0x500], 0x13
call fcn.0057e0d0
mov byte [esp + 0x4fc], 0xe
call fcn.00568c40
add esp, 0x54
test eax, eax
jne 0x56e08d
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057ff60
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov edi, 3
cmp dword [esp + 0x38], edi
jne 0x56e4fc
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x16c]
call fcn.00583c90
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x1dc]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.00524de0
add esp, 8
test eax, eax
je 0x56e0d6
or byte [esp + 0x17], 4
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x224]
call fcn.0051f2f0
test byte [esp + 0x17], 4
je 0x56e117
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
jmp 0x56e139
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
lea eax, [esp + 0x220]
push eax
call fcn.00583ab0
add dword [0x686bcc], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057ff60
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x204]
call fcn.0051f980
mov esi, eax
test esi, esi
jne 0x56e1cb
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56e34d
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56e346
cmp dword [esp + 0x30], 4
jne 0x56e346
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x2c0]
call fcn.0051f980
mov esi, eax
test esi, esi
je 0x56e1cb
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x200]
call fcn.0051d8c0
mov dword [esp + 0x6c], ebx
cmp esi, ebx
jne 0x56e235
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.00524de0
add esp, 8
test eax, eax
je 0x56e206
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.0051f1c0
jmp 0x56e9ea
cmp esi, 2
jne 0x56e346
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.0052b0e0
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.0052b0e0
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x56e2e0
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.00524de0
add esp, 8
test eax, eax
je 0x56e2b1
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.0051f1c0
jmp 0x56e9ea
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.00524de0
add esp, 8
test eax, eax
je 0x56e317
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.0051f1c0
jmp 0x56e9ea
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56e4d6
lea eax, [esp + 0x168]
push eax
call fcn.0057a500
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x16c]
call fcn.00583c90
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.0051f980
test eax, eax
je 0x56e3f1
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.0051f2f0
lea ecx, [esp + 0x220]
call fcn.0051ef10
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583ab0
add dword [0x686c0c], edi
jmp 0x56e9ea
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x204]
call fcn.00517b40
test eax, eax
je 0x56e4b0
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x24c]
call fcn.00520ec0
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.00522100
test eax, eax
mov eax, dword [0x686c0c]
je 0x56e47b
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], ecx
mov ecx, eax
add eax, ebx
mov dword [0x686c0c], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x98], edx
push eax
jmp 0x56e489
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
mov dword [0x686c0c], eax
push edx
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583a80
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.00520f30
jmp 0x56e9ea
mov eax, dword [0x686c0c]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [0x686c0c], eax
lea eax, [esp + 0x50]
push eax
call fcn.00583a80
jmp 0x56e9ea
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
jmp 0x56e9ea
cmp dword [esp + 0x34], edi
jne 0x56e9ea
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x19c]
call fcn.00583c90
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x200]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.00524de0
add esp, 8
test eax, eax
je 0x56e540
or byte [esp + 0x17], 4
lea eax, [esp + 0x200]
push eax
lea ecx, [esp + 0x224]
call fcn.0051f2f0
test byte [esp + 0x17], 4
je 0x56e581
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
jmp 0x56e5a3
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea eax, [esp + 0x220]
push eax
call fcn.00583ab0
add dword [0x686c0c], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057fdb0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.0051f980
mov esi, eax
test esi, esi
jne 0x56e635
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56e7b7
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56e7b0
cmp dword [esp + 0x30], 4
jne 0x56e7b0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x308]
call fcn.0051f980
mov esi, eax
test esi, esi
je 0x56e635
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
mov dword [esp + 0x58], ebx
cmp esi, ebx
jne 0x56e69f
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.00524de0
add esp, 8
test eax, eax
je 0x56e670
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.0051f1c0
jmp 0x56e9ea
cmp esi, 2
jne 0x56e7b0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.0052b0e0
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.0052b0e0
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x56e74a
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.00524de0
add esp, 8
test eax, eax
je 0x56e71b
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.0051f1c0
jmp 0x56e9ea
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.00524de0
add esp, 8
test eax, eax
je 0x56e781
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.0051f1c0
jmp 0x56e9ea
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x56e927
lea eax, [esp + 0x198]
push eax
call fcn.0057a500
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00583c90
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.0051f980
test eax, eax
je 0x56e84f
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.0051f1c0
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], edi
jmp 0x56e9ea
lea edx, [esp + 0x22c]
push edx
lea ecx, [esp + 0x1e0]
call fcn.00517b40
test eax, eax
je 0x56e901
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x24c]
call fcn.00520ec0
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.00522100
test eax, eax
mov eax, dword [0x686bcc]
je 0x56e8e5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf4], ecx
mov ecx, eax
add eax, ebx
mov dword [0x686bcc], eax
lea eax, [esp + 0xf4]
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [esp + 0xf8], edx
push eax
jmp 0x56e492
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [0x686bcc], eax
push edx
jmp 0x56e492
mov eax, dword [0x686bcc]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [0x686bcc], eax
lea eax, [esp + 0x50]
push eax
call fcn.00583a80
jmp 0x56e9ea
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
jmp 0x56e9ea
mov eax, dword [0x686bcc]
shl eax, 4
add eax, dword [0x686bbc]
lea ecx, [esp + 0x70]
push eax
call fcn.0057ea70
mov ebx, 3
add dword [0x686bcc], ebx
mov ecx, edi
call fcn.0056be30
mov ecx, dword [0x686bcc]
mov edx, dword [0x686bbc]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x686bbc]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x686bcc], esi
call fcn.0057a500
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov dword [0x686bcc], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], eax
call fcn.00583a80
mov edi, ebx
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x56ec91
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56ec91
cmp dword [esp + 0x30], 4
jne 0x56ec91
cmp dword [esp + 0x6c], 0
jne 0x56eb51
cmp dword [esp + 0x40], 1
jne 0x56ea52
lea ecx, [esp + 0x348]
push ecx
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583ab0
add dword [0x686c0c], edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x248]
call fcn.0051ec30
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x4ac], 0x16
call fcn.0051d8c0
lea ecx, [esp + 0x208]
push ecx
lea ecx, [esp + 0x204]
call fcn.0040b230
test eax, eax
je 0x56eabb
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x200]
call fcn.0051d8c0
mov dword [esp + 0x30], 2
jmp 0x56eb3d
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.00517b40
test eax, eax
je 0x56eaf7
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583ab0
add dword [0x686c0c], edi
jmp 0x56eb3d
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [0x686c0c], eax
lea eax, [esp + 0x250]
push eax
call fcn.00583a80
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0051c420
cmp dword [esp + 0x58], 0
jne 0x56ec84
cmp dword [esp + 0x1c], 1
jne 0x56eb85
lea ecx, [esp + 0x324]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], edi
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x248]
call fcn.0051ec30
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x4ac], 0x17
call fcn.0051d8c0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.0040b230
test eax, eax
je 0x56ebee
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
mov dword [esp + 0x30], 2
jmp 0x56ec70
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.00517b40
test eax, eax
je 0x56ec2a
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], edi
jmp 0x56ec70
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [0x686bcc], eax
lea eax, [esp + 0x250]
push eax
call fcn.00583a80
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.0051c420
mov dword [esp + 0x18], 0
jmp 0x56ef1a
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x56ef7c
mov esi, 1
cmp dword [esp + 0x1c], esi
jne 0x56ecd2
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x324]
push edx
call fcn.00583ab0
add dword [0x686bcc], 3
cmp dword [esp + 0x40], esi
jne 0x56ef7c
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea eax, [esp + 0x348]
push eax
call fcn.00583ab0
add dword [0x686c0c], 3
jmp 0x56ef7c
mov ecx, dword [0x686bbc]
and byte [esp + 0x17], 4
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0057a500
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
mov eax, dword [0x686bbc]
mov edi, 3
mov dword [0x686bcc], edi
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], eax
call fcn.00583a80
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x56ef5f
call fcn.0051f0a0
fcomp qword [0x6345f0]
fnstsw ax
test ah, 0x41
jne 0x56ef58
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.005784d0
mov ecx, esi
call fcn.00568420
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x56eeed
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.00517b40
test eax, eax
je 0x56ee07
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], edi
jmp 0x56ee4d
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686bbc]
mov dword [0x686bcc], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.00583a80
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.00517b40
test eax, eax
je 0x56ee89
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x294]
push edx
call fcn.00583ab0
add dword [0x686c0c], edi
jmp 0x56eecf
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x686c08]
mov dword [0x686c0c], eax
lea eax, [esp + 0x298]
push eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x56ef0e
cmp eax, 2
jne 0x56ef1a
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.0051d8c0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.0051d8c0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.0040b230
test eax, eax
je 0x56ef3a
mov dword [esp + 0x18], 2
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x204]
call fcn.0040b230
test eax, eax
je 0x56ef7c
inc dword [esp + 0x18]
jmp 0x56ef7c
mov ecx, dword [esp + 0x38c]
lea eax, [esp + 0x1fc]
push eax
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.00568280
mov dword [esp + 0x1c], eax
add esp, 4
mov ecx, dword [esp + 0x38c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.005782b0
mov edi, dword [esp + 0x68]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x36c]
call fcn.00572760
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
jbe 0x56cea5
cmp dword [esp + 0x1c], 0
je 0x56f127
push 6
mov ecx, edi
call fcn.00544e60
push 6
mov ecx, edi
call fcn.00568520
mov esi, dword [esp + 0x18]
mov edi, 3
cmp esi, 2
je 0x56f02c
cmp esi, edi
je 0x56f02c
test byte [esp + 0x17], 1
je 0x56f008
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
mov dword [0x686bcc], eax
lea eax, [esp + 0x1dc]
jmp 0x56f063
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
call fcn.00583ab0
add dword [0x686bcc], edi
jmp 0x56f072
mov eax, dword [0x686bcc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686bbc]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x686bcc], eax
call fcn.00583a80
mov eax, dword [0x686bcc]
mov ecx, eax
inc eax
mov dword [0x686bcc], eax
lea eax, [esp + 0x1e4]
shl ecx, 4
add ecx, dword [0x686bbc]
push eax
call fcn.00583a80
cmp esi, 1
je 0x56f0bd
cmp esi, edi
je 0x56f0bd
test byte [esp + 0x17], 2
je 0x56f099
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x686c0c], eax
push edx
jmp 0x56f0f5
mov ecx, dword [0x686c0c]
shl ecx, 4
add ecx, dword [0x686c08]
lea eax, [esp + 0x1fc]
push eax
call fcn.00583ab0
add dword [0x686c0c], edi
jmp 0x56f103
mov eax, dword [0x686c0c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x686c08]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x686c0c], eax
call fcn.00583a80
mov eax, dword [0x686c0c]
mov ecx, eax
inc eax
mov dword [0x686c0c], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x686c08]
call fcn.00583a80
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0057abf0
add dword [0x686bcc], edi
jmp 0x56f165
cmp dword [esp + 0x3c], 0
je 0x56f165
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x74]
jne 0x56f145
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x56f165
mov ecx, dword [0x686bcc]
shl ecx, 4
add ecx, dword [0x686bbc]
push ecx
lea ecx, [esp + 0x74]
call fcn.0057ea70
add dword [0x686bcc], 3
mov esi, dword [esp + 0x68]
mov ecx, esi
call fcn.0056be30
mov edx, dword [0x686bcc]
mov eax, dword [0x686bbc]
push 0
push edx
mov edx, dword [esi + 0x34]
push eax
mov ecx, esi
call edx
mov dword [0x686bcc], 0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.0051c420
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.0051c420
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.0051c420
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.00520f30
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.00520f30
push fcn.004f2200
push 3
push 0x10
lea eax, [esp + 0x1a4]
push eax
mov byte [esp + 0x4b8], 8
call fcn.005fba44
push fcn.004f2200
push 3
push 0x10
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x4b8], 7
call fcn.005fba44
push fcn.0051c420
push 2
push 0x24
lea edx, [esp + 0x2a0]
push edx
mov byte [esp + 0x4b8], 6
call fcn.005fba44
push fcn.0051c420
push 2
push 0x24
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0x4b8], 5
call fcn.005fba44
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.0051c420
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.0051c420
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00573da0
lea ecx, [esp + 0x70]
mov byte [esp + 0x4a8], 1
call fcn.0057e100
lea ecx, [esp + 0x36c]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.005717a0
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.005fb9ce
mov esp, ebp
pop ebp
ret 8