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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5f0f54
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x638190]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x638190]
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 0x5b8bd4
test cl, 8
je 0x5b8bcf
mov ecx, dword [eax + 4]
jmp 0x5b8be2
mov ecx, dword [eax + 0xc]
jmp 0x5b8be2
test byte [eax + 0x12], 8
je 0x5b8bdf
mov ecx, dword [eax + 0x14]
jmp 0x5b8be2
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [ebp + 0xc]
sar edx, 1
cmp ecx, 2
jge 0x5b8c83
cmp ecx, 1
jne 0x5bb24d
test edx, edx
je 0x5bb24d
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.004f12b0
mov ecx, dword [0x6390ac]
push eax
mov dword [esp + 0x4ac], 0
call fcn.0056fa50
lea ecx, [esp + 0x244]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.004f1b60
mov edx, dword [0x6390ac]
mov eax, dword [esi + 0x34]
push 0
push 3
push edx
mov ecx, esi
call eax
jmp 0x5bb24d
xor edi, edi
cmp edx, edi
jne 0x5b8c98
push edi
push ecx
push eax
mov ecx, esi
call fcn.0056c870
jmp 0x5bb24d
push ecx
push eax
lea ecx, [esp + 0x374]
mov dword [esp + 0x24], edi
call fcn.00591080
lea ecx, [esp + 0x70]
mov dword [esp + 0x4a8], 1
call fcn.00589210
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.0051a7e0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004f1250
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004f1250
push fcn.004f1b60
push fcn.004f1250
push 2
push 0x24
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x4bc], 5
call fcn.005c3e4c
push fcn.004f1b60
push fcn.004f1250
push 2
push 0x24
lea edx, [esp + 0x2a4]
push edx
mov byte [esp + 0x4bc], 6
call fcn.005c3e4c
push fcn.00440ab0
push fcn.004e79a0
push 3
push 0x10
lea eax, [esp + 0x178]
push eax
mov byte [esp + 0x4bc], 7
call fcn.005c3e4c
push fcn.00440ab0
push fcn.004e79a0
push 3
push 0x10
lea ecx, [esp + 0x1a8]
push ecx
mov byte [esp + 0x4bc], 8
call fcn.005c3e4c
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f8520
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f8520
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004f1250
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004f1250
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004f1250
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 0x5bb110
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
ja 0x5bb0e5
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x38c]
push eax
call fcn.0058c800
add esp, 4
test eax, eax
je 0x5baf1c
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.00569010
push 6
mov ecx, edi
call fcn.005b44b0
cmp esi, 0x16
jne 0x5b9947
mov eax, dword [0x6390bc]
test eax, eax
je 0x5b98b6
cmp dword [esp + 0x1c], 0
je 0x5b9798
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.004f33f0
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.004fa8a0
add esp, 8
test eax, eax
jne 0x5baf1c
mov edx, dword [esp + 0x290]
push eax
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x250]
call fcn.00589260
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.0058a430
test eax, eax
je 0x5b95a0
push 0
push esi
lea ecx, [esp + 0x270]
call fcn.005245b0
test eax, eax
jne 0x5b95a0
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 0x5b9034
cmp dword [esp + 0x34], 3
je 0x5b9034
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b9034
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.0051ef70
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb8], esp
push ebx
mov byte [esp + 0x500], 0x10
call fcn.00589290
mov byte [esp + 0x4fc], 0xf
call fcn.005b4bd0
add esp, 0x54
test eax, eax
je 0x5b9020
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.00456a80
test eax, eax
je 0x5b9034
add dword [esp + 0x18], 2
jmp 0x5b9034
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.0058af70
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x34], 1
jne 0x5b90f1
cmp dword [esp + 0x38], 3
je 0x5b90fc
mov edx, dword [esp + 0x290]
cmp dword [esp + 0x28c], edx
je 0x5b90f1
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.0051ef70
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x90], esp
push ebx
mov byte [esp + 0x500], 0x11
call fcn.00589290
mov byte [esp + 0x4fc], 0xf
call fcn.005b4bd0
add esp, 0x54
test eax, eax
je 0x5b90da
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00456a80
test eax, eax
je 0x5b90f1
inc dword [esp + 0x18]
jmp 0x5b90f1
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebx
call fcn.0058b120
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x38], 3
jne 0x5b9243
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x16c]
call fcn.0056fc30
and byte [esp + 0x17], 0xfb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [0x6390ac]
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22c]
push eax
push ecx
mov eax, 1
mov esi, 0x6390bc
call fcn.005b4ed0
mov ecx, dword [esp + 0x3a0]
add esp, 0x14
lea edx, [esp + 0x44]
push edx
call fcn.0058b120
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x204]
call fcn.004f4aa0
mov esi, eax
test esi, esi
jne 0x5b91e6
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b91e6
lea ecx, [esp + 0x268]
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5b91e6
cmp dword [esp + 0x30], 4
jne 0x5b91e6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004f4aa0
mov esi, eax
test esi, esi
je 0x5b91e6
mov ecx, dword [0x63911c]
sub ecx, 3
mov dword [0x63911c], ecx
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x1fc]
push edx
call fcn.0056fc30
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 [0x639118]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x63911c
call fcn.005b4fc0
add esp, 0x28
jmp 0x5b977b
mov ebx, 3
cmp dword [esp + 0x34], ebx
jne 0x5b9394
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.0056fc30
and byte [esp + 0x17], 0xfb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x200]
push eax
mov eax, dword [0x639118]
lea ecx, [esp + 0x1f]
push ecx
lea edx, [esp + 0x22c]
push edx
push eax
xor eax, eax
mov esi, 0x63911c
call fcn.005b4ed0
add esp, 0x14
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0058af70
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f4aa0
mov esi, eax
test esi, esi
jne 0x5b9337
mov ecx, dword [esp + 0x28c]
cmp ecx, dword [esp + 0x290]
je 0x5b9337
lea ecx, [esp + 0x268]
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5b9337
cmp dword [esp + 0x30], 4
jne 0x5b9337
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004f4aa0
mov esi, eax
test esi, esi
je 0x5b9337
mov ecx, dword [0x6390bc]
sub ecx, ebx
mov dword [0x6390bc], ecx
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x1d8]
push edx
call fcn.0056fc30
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 [0x6390ac]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x6390bc
call fcn.005b4fc0
add esp, 0x28
jmp 0x5b977b
mov edi, dword [esp + 0x18]
cmp edi, 2
je 0x5b9445
cmp edi, ebx
je 0x5b9445
test byte [esp + 0x17], 1
je 0x5b93d0
mov eax, dword [0x6390bc]
mov esi, 1
mov ecx, eax
add eax, esi
lea edx, [esp + 0x1dc]
mov dword [0x6390bc], eax
push edx
jmp 0x5b9484
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056fa50
mov ecx, dword [0x6390bc]
add ecx, ebx
mov esi, 1
mov dword [0x6390bc], ecx
cmp dword [esp + 0x40], esi
jne 0x5b9423
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x324]
push edx
call fcn.0056fa50
add dword [0x6390bc], ebx
jmp 0x5b9492
cmp dword [esp + 0x1c], esi
jne 0x5b9492
mov eax, ecx
shl eax, 4
add eax, dword [0x6390ac]
add ecx, esi
mov dword [0x6390bc], ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
jmp 0x5b948d
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
mov esi, 1
lea edx, [esp + 0x1dc]
add eax, esi
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
add eax, esi
mov dword [0x6390bc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa20
cmp edi, esi
je 0x5b9553
cmp edi, ebx
je 0x5b9553
test byte [esp + 0x17], 2
je 0x5b94d2
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
jmp 0x5b977b
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056fa50
mov ecx, dword [0x63911c]
add ecx, ebx
mov dword [0x63911c], ecx
cmp dword [esp + 0x58], esi
jne 0x5b9523
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x348]
push edx
call fcn.0056fa50
add dword [0x63911c], ebx
jmp 0x5b977b
cmp dword [esp + 0x6c], esi
jne 0x5b977b
mov eax, ecx
inc ecx
shl eax, 4
add eax, dword [0x639118]
mov dword [0x63911c], ecx
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call fcn.0056fa20
jmp 0x5b977b
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
add eax, esi
shl ecx, 4
add ecx, dword [0x639118]
mov dword [0x63911c], eax
lea eax, [esp + 0x208]
push eax
call fcn.0056fa20
jmp 0x5b977b
mov esi, dword [esp + 0x18]
mov ebx, 3
cmp esi, 2
je 0x5b95f4
cmp esi, ebx
je 0x5b95f4
test byte [esp + 0x17], 1
je 0x5b95d0
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x6390bc], eax
push edx
jmp 0x5b962c
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056fa50
add dword [0x6390bc], ebx
jmp 0x5b963a
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
mov dword [0x6390bc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa20
cmp esi, 1
je 0x5b9685
cmp esi, ebx
je 0x5b9685
test byte [esp + 0x17], 2
je 0x5b9661
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x63911c], eax
push edx
jmp 0x5b96bd
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056fa50
add dword [0x63911c], ebx
jmp 0x5b96cb
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa20
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
push ecx
lea ecx, [esp + 0x26c]
call fcn.00521690
add dword [0x6390bc], ebx
mov ecx, edi
call fcn.005b7dc0
mov edx, dword [0x6390bc]
mov eax, dword [0x6390ac]
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 [0x6390bc], 0
call fcn.004efee0
test eax, eax
je 0x5b977b
mov ecx, dword [0x6390ac]
push ecx
mov ecx, esi
call fcn.005898d0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x138], eax
call fcn.0056fa20
mov dword [0x6390bc], ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.005892c0
mov edi, dword [esp + 0x68]
jmp 0x5b9921
mov edx, dword [0x63911c]
mov esi, dword [esp + 0x38c]
shl edx, 4
add edx, dword [0x639118]
lea ecx, [esp + 0x34]
push ecx
push edx
shl eax, 4
add eax, dword [0x6390ac]
lea ecx, [esp + 0x40]
push ecx
push eax
add esi, 0xc
push esi
lea ecx, [esp + 0x84]
call fcn.0058a430
test eax, eax
je 0x5b97fe
push esi
lea ecx, [esp + 0x74]
call fcn.0058b2d0
test eax, eax
jne 0x5b97fe
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add dword [0x6390bc], edx
add dword [0x63911c], eax
jmp 0x5b9921
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
push ecx
lea ecx, [esp + 0x74]
call fcn.00589c30
mov ebx, 3
add dword [0x6390bc], ebx
mov ecx, edi
call fcn.005b7dc0
mov edx, dword [0x6390bc]
mov eax, dword [0x6390ac]
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 [0x6390bc], 0
call fcn.004efee0
test eax, eax
je 0x5b9928
mov ecx, dword [0x6390ac]
push ecx
mov ecx, esi
call fcn.005898d0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x144]
push edx
mov dword [esp + 0x148], eax
call fcn.0056fa20
mov dword [0x6390bc], ebx
jmp 0x5b9921
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x5b98cd
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 8]
je 0x5b9928
mov edx, dword [0x6390ac]
push edx
mov ecx, esi
call fcn.005898d0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0x110], eax
call fcn.0056fa20
mov dword [0x6390bc], 3
mov esi, dword [esp + 0x38c]
push esi
lea ecx, [esp + 0x74]
call fcn.0058bfb0
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x5baf1c
cmp esi, 0x11
jne 0x5baf1c
xor esi, esi
cmp dword [0x6390bc], esi
je 0x5bac84
cmp dword [esp + 0x1c], esi
je 0x5b9d11
mov ebx, dword [esp + 0x18]
cmp ebx, 1
je 0x5b99b8
cmp ebx, 3
je 0x5b99b8
test byte [esp + 0x17], 2
je 0x5b9993
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
lea eax, [esp + 0x200]
jmp 0x5b99ef
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa50
add dword [0x63911c], 3
jmp 0x5b99fe
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
lea eax, [esp + 0x208]
shl ecx, 4
add ecx, dword [0x639118]
push eax
call fcn.0056fa20
cmp ebx, 2
je 0x5b9a55
cmp ebx, 3
je 0x5b9a55
test byte [esp + 0x17], 1
je 0x5b9a26
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x6390bc], eax
push edx
jmp 0x5b9a8d
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056fa50
mov eax, dword [0x6390bc]
mov ebx, 3
add eax, ebx
mov dword [0x6390bc], eax
jmp 0x5b9aa5
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
mov dword [0x6390bc], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ebx, 3
shl eax, 4
add eax, dword [0x6390ac]
lea ecx, [esp + 0x268]
push eax
call fcn.00521690
add dword [0x6390bc], ebx
mov ecx, edi
call fcn.005b7dc0
mov ecx, dword [0x6390bc]
mov edx, dword [0x6390ac]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x6390ac]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x6390bc], esi
call fcn.00520fa0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov dword [0x6390bc], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0x108], edx
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x108], eax
call fcn.0056fa20
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
cmp eax, dword [ecx + 0x28]
je 0x5baedf
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5baed8
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.0051ef70
mov ecx, edi
call fcn.005b43b0
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5b9cdb
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004efee0
test eax, eax
je 0x5b9be2
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], ebx
jmp 0x5b9c28
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [0x6390bc], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.0056fa20
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004efee0
test eax, eax
je 0x5b9c64
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x294]
push edx
call fcn.0056fa50
add dword [0x63911c], ebx
jmp 0x5b9caa
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x639118]
mov dword [0x63911c], eax
lea eax, [esp + 0x298]
push eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x200]
call fcn.004f2e40
mov dword [esp + 0x18], esi
jmp 0x5bae9a
cmp eax, 2
jne 0x5b9d08
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004f2e40
mov dword [esp + 0x18], esi
jmp 0x5bae9a
push 0x3e8
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x394]
call fcn.004f3350
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 0x5b9e0f
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5b9e08
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.0051ef70
mov ecx, esi
call fcn.005b43b0
mov dword [esp + 0x60], eax
add esp, 0x30
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
mov ecx, esi
push ecx
lea ecx, [esp + 0x200]
call fcn.004f2e40
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], 0
call fcn.00456a80
test eax, eax
je 0x5b9dea
mov dword [esp + 0x18], 2
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00456a80
test eax, eax
je 0x5b9e30
inc dword [esp + 0x18]
jmp 0x5b9e30
mov ecx, dword [esp + 0x38c]
lea edx, [esp + 0x1fc]
push edx
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005b4210
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.0058a430
test eax, eax
je 0x5ba8cd
mov ecx, dword [esp + 0x38c]
push 1
lea eax, [esp + 0x78]
push eax
call fcn.005245b0
test eax, eax
jne 0x5ba8cd
cmp dword [esp + 0x38], 1
jne 0x5b9f51
cmp dword [esp + 0x34], 3
je 0x5b9f51
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b9f51
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.0051ef70
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xe0], esp
push eax
mov byte [esp + 0x500], 0x12
call fcn.00589290
mov byte [esp + 0x4fc], 0xe
call fcn.005b4bd0
add esp, 0x54
test eax, eax
jne 0x5b9f51
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0058af70
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x50]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov ebx, 1
lea edi, [ebx + 2]
cmp dword [esp + 0x34], ebx
jne 0x5ba012
cmp dword [esp + 0x38], edi
je 0x5ba01c
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5ba012
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.0051ef70
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
mov byte [esp + 0x500], 0x13
call fcn.00589290
mov byte [esp + 0x4fc], 0xe
call fcn.005b4bd0
add esp, 0x54
test eax, eax
jne 0x5ba00d
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0058b120
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov edi, 3
cmp dword [esp + 0x38], edi
jne 0x5ba47c
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x16c]
call fcn.0056fc30
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x1dc]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fa8a0
add esp, 8
test eax, eax
je 0x5ba056
or byte [esp + 0x17], 4
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x224]
call fcn.004f4410
test byte [esp + 0x17], 4
je 0x5ba097
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
jmp 0x5ba0b9
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
lea eax, [esp + 0x220]
push eax
call fcn.0056fa50
add dword [0x6390bc], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0058b120
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x204]
call fcn.004f4aa0
mov esi, eax
test esi, esi
jne 0x5ba14b
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5ba2cd
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5ba2c6
cmp dword [esp + 0x30], 4
jne 0x5ba2c6
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x2c0]
call fcn.004f4aa0
mov esi, eax
test esi, esi
je 0x5ba14b
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x200]
call fcn.004f2e40
mov dword [esp + 0x6c], ebx
cmp esi, ebx
jne 0x5ba1b5
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba186
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.004f42e0
jmp 0x5ba96a
cmp esi, 2
jne 0x5ba2c6
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.00501010
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00501010
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5ba260
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba231
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.004f42e0
jmp 0x5ba96a
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba297
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.004f42e0
jmp 0x5ba96a
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5ba456
lea eax, [esp + 0x168]
push eax
call fcn.00520fa0
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x16c]
call fcn.0056fc30
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f4aa0
test eax, eax
je 0x5ba371
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.004f4410
lea ecx, [esp + 0x220]
call fcn.004f4030
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa50
add dword [0x63911c], edi
jmp 0x5ba96a
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x204]
call fcn.004efee0
test eax, eax
je 0x5ba430
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f8540
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.004f9730
test eax, eax
mov eax, dword [0x63911c]
je 0x5ba3fb
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], ecx
mov ecx, eax
add eax, ebx
mov dword [0x63911c], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x98], edx
push eax
jmp 0x5ba409
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
mov dword [0x63911c], eax
push edx
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa20
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f85b0
jmp 0x5ba96a
mov eax, dword [0x63911c]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x639118]
mov dword [0x63911c], eax
lea eax, [esp + 0x50]
push eax
call fcn.0056fa20
jmp 0x5ba96a
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
jmp 0x5ba96a
cmp dword [esp + 0x34], edi
jne 0x5ba96a
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x19c]
call fcn.0056fc30
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x200]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fa8a0
add esp, 8
test eax, eax
je 0x5ba4c0
or byte [esp + 0x17], 4
lea eax, [esp + 0x200]
push eax
lea ecx, [esp + 0x224]
call fcn.004f4410
test byte [esp + 0x17], 4
je 0x5ba501
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
jmp 0x5ba523
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea eax, [esp + 0x220]
push eax
call fcn.0056fa50
add dword [0x63911c], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.0058af70
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f4aa0
mov esi, eax
test esi, esi
jne 0x5ba5b5
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5ba737
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5ba730
cmp dword [esp + 0x30], 4
jne 0x5ba730
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x308]
call fcn.004f4aa0
mov esi, eax
test esi, esi
je 0x5ba5b5
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
mov dword [esp + 0x58], ebx
cmp esi, ebx
jne 0x5ba61f
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba5f0
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.004f42e0
jmp 0x5ba96a
cmp esi, 2
jne 0x5ba730
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.00501010
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00501010
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5ba6ca
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba69b
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.004f42e0
jmp 0x5ba96a
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.004fa8a0
add esp, 8
test eax, eax
je 0x5ba701
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.004f42e0
jmp 0x5ba96a
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5ba8a7
lea eax, [esp + 0x198]
push eax
call fcn.00520fa0
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.0056fc30
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f4aa0
test eax, eax
je 0x5ba7cf
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.004f42e0
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], edi
jmp 0x5ba96a
lea edx, [esp + 0x22c]
push edx
lea ecx, [esp + 0x1e0]
call fcn.004efee0
test eax, eax
je 0x5ba881
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f8540
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.004f9730
test eax, eax
mov eax, dword [0x6390bc]
je 0x5ba865
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf4], ecx
mov ecx, eax
add eax, ebx
mov dword [0x6390bc], eax
lea eax, [esp + 0xf4]
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [esp + 0xf8], edx
push eax
jmp 0x5ba412
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [0x6390bc], eax
push edx
jmp 0x5ba412
mov eax, dword [0x6390bc]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [0x6390bc], eax
lea eax, [esp + 0x50]
push eax
call fcn.0056fa20
jmp 0x5ba96a
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
jmp 0x5ba96a
mov eax, dword [0x6390bc]
shl eax, 4
add eax, dword [0x6390ac]
lea ecx, [esp + 0x70]
push eax
call fcn.00589c30
mov ebx, 3
add dword [0x6390bc], ebx
mov ecx, edi
call fcn.005b7dc0
mov ecx, dword [0x6390bc]
mov edx, dword [0x6390ac]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x6390ac]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x6390bc], esi
call fcn.00520fa0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov dword [0x6390bc], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], eax
call fcn.0056fa20
mov edi, ebx
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5bac11
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5bac11
cmp dword [esp + 0x30], 4
jne 0x5bac11
cmp dword [esp + 0x6c], 0
jne 0x5baad1
cmp dword [esp + 0x40], 1
jne 0x5ba9d2
lea ecx, [esp + 0x348]
push ecx
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa50
add dword [0x63911c], edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x248]
call fcn.004f3d50
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x4ac], 0x16
call fcn.004f2e40
lea ecx, [esp + 0x208]
push ecx
lea ecx, [esp + 0x204]
call fcn.00456a80
test eax, eax
je 0x5baa3b
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x200]
call fcn.004f2e40
mov dword [esp + 0x30], 2
jmp 0x5baabd
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004efee0
test eax, eax
je 0x5baa77
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa50
add dword [0x63911c], edi
jmp 0x5baabd
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x639118]
mov dword [0x63911c], eax
lea eax, [esp + 0x250]
push eax
call fcn.0056fa20
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f1b60
cmp dword [esp + 0x58], 0
jne 0x5bac04
cmp dword [esp + 0x1c], 1
jne 0x5bab05
lea ecx, [esp + 0x324]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], edi
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x248]
call fcn.004f3d50
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x4ac], 0x17
call fcn.004f2e40
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00456a80
test eax, eax
je 0x5bab6e
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
mov dword [esp + 0x30], 2
jmp 0x5babf0
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004efee0
test eax, eax
je 0x5babaa
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], edi
jmp 0x5babf0
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [0x6390bc], eax
lea eax, [esp + 0x250]
push eax
call fcn.0056fa20
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f1b60
mov dword [esp + 0x18], 0
jmp 0x5bae9a
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5baefc
mov esi, 1
cmp dword [esp + 0x1c], esi
jne 0x5bac52
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x324]
push edx
call fcn.0056fa50
add dword [0x6390bc], 3
cmp dword [esp + 0x40], esi
jne 0x5baefc
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea eax, [esp + 0x348]
push eax
call fcn.0056fa50
add dword [0x63911c], 3
jmp 0x5baefc
mov ecx, dword [0x6390ac]
and byte [esp + 0x17], 4
push ecx
mov ecx, dword [esp + 0x390]
call fcn.00520fa0
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
mov eax, dword [0x6390ac]
mov edi, 3
mov dword [0x6390bc], edi
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x639118]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], eax
call fcn.0056fa20
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5baedf
call fcn.004f41c0
fcomp qword [0x5f3de8]
fnstsw ax
test ah, 0x41
jne 0x5baed8
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.0051ef70
mov ecx, esi
call fcn.005b43b0
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5bae6d
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004efee0
test eax, eax
je 0x5bad87
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], edi
jmp 0x5badcd
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x6390ac]
mov dword [0x6390bc], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.0056fa20
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004efee0
test eax, eax
je 0x5bae09
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x294]
push edx
call fcn.0056fa50
add dword [0x63911c], edi
jmp 0x5bae4f
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x639118]
mov dword [0x63911c], eax
lea eax, [esp + 0x298]
push eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x5bae8e
cmp eax, 2
jne 0x5bae9a
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f2e40
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004f2e40
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00456a80
test eax, eax
je 0x5baeba
mov dword [esp + 0x18], 2
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x204]
call fcn.00456a80
test eax, eax
je 0x5baefc
inc dword [esp + 0x18]
jmp 0x5baefc
mov ecx, dword [esp + 0x38c]
lea eax, [esp + 0x1fc]
push eax
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005b4210
mov dword [esp + 0x1c], eax
add esp, 4
mov ecx, dword [esp + 0x38c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051ed40
mov edi, dword [esp + 0x68]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x36c]
call fcn.0053b250
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
jbe 0x5b8e25
cmp dword [esp + 0x1c], 0
je 0x5bb0a7
push 6
mov ecx, edi
call fcn.00569010
push 6
mov ecx, edi
call fcn.005b44b0
mov esi, dword [esp + 0x18]
mov edi, 3
cmp esi, 2
je 0x5bafac
cmp esi, edi
je 0x5bafac
test byte [esp + 0x17], 1
je 0x5baf88
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
mov dword [0x6390bc], eax
lea eax, [esp + 0x1dc]
jmp 0x5bafe3
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
call fcn.0056fa50
add dword [0x6390bc], edi
jmp 0x5baff2
mov eax, dword [0x6390bc]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x6390ac]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x6390bc], eax
call fcn.0056fa20
mov eax, dword [0x6390bc]
mov ecx, eax
inc eax
mov dword [0x6390bc], eax
lea eax, [esp + 0x1e4]
shl ecx, 4
add ecx, dword [0x6390ac]
push eax
call fcn.0056fa20
cmp esi, 1
je 0x5bb03d
cmp esi, edi
je 0x5bb03d
test byte [esp + 0x17], 2
je 0x5bb019
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x63911c], eax
push edx
jmp 0x5bb075
mov ecx, dword [0x63911c]
shl ecx, 4
add ecx, dword [0x639118]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056fa50
add dword [0x63911c], edi
jmp 0x5bb083
mov eax, dword [0x63911c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x639118]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x63911c], eax
call fcn.0056fa20
mov eax, dword [0x63911c]
mov ecx, eax
inc eax
mov dword [0x63911c], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x639118]
call fcn.0056fa20
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
push ecx
lea ecx, [esp + 0x26c]
call fcn.00521690
add dword [0x6390bc], edi
jmp 0x5bb0e5
cmp dword [esp + 0x3c], 0
je 0x5bb0e5
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x74]
jne 0x5bb0c5
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x5bb0e5
mov ecx, dword [0x6390bc]
shl ecx, 4
add ecx, dword [0x6390ac]
push ecx
lea ecx, [esp + 0x74]
call fcn.00589c30
add dword [0x6390bc], 3
mov esi, dword [esp + 0x68]
mov ecx, esi
call fcn.005b7dc0
mov edx, dword [0x6390bc]
mov eax, dword [0x6390ac]
push 0
push edx
mov edx, dword [esi + 0x34]
push eax
mov ecx, esi
call edx
mov dword [0x6390bc], 0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004f1b60
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004f1b60
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004f1b60
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f85b0
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f85b0
push fcn.00440ab0
push 3
push 0x10
lea eax, [esp + 0x1a4]
push eax
mov byte [esp + 0x4b8], 8
call fcn.005c3de9
push fcn.00440ab0
push 3
push 0x10
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x4b8], 7
call fcn.005c3de9
push fcn.004f1b60
push 2
push 0x24
lea edx, [esp + 0x2a0]
push edx
mov byte [esp + 0x4b8], 6
call fcn.005c3de9
push fcn.004f1b60
push 2
push 0x24
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0x4b8], 5
call fcn.005c3de9
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004f1b60
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004f1b60
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.0051a830
lea ecx, [esp + 0x70]
mov byte [esp + 0x4a8], 1
call fcn.005892c0
lea ecx, [esp + 0x36c]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.005902f0
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.005c3bb6
mov esp, ebp
pop ebp
ret 8