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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5eb3b4
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x632da0]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x632da0]
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 0x5b3314
test cl, 8
je 0x5b330f
mov ecx, dword [eax + 4]
jmp 0x5b3322
mov ecx, dword [eax + 0xc]
jmp 0x5b3322
test byte [eax + 0x12], 8
je 0x5b331f
mov ecx, dword [eax + 0x14]
jmp 0x5b3322
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [ebp + 0xc]
sar edx, 1
cmp ecx, 2
jge 0x5b33c3
cmp ecx, 1
jne 0x5b598d
test edx, edx
je 0x5b598d
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.004f0020
mov ecx, dword [0x633c6c]
push eax
mov dword [esp + 0x4ac], 0
call fcn.0056ab50
lea ecx, [esp + 0x244]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.004f08d0
mov edx, dword [0x633c6c]
mov eax, dword [esi + 0x34]
push 0
push 3
push edx
mov ecx, esi
call eax
jmp 0x5b598d
xor edi, edi
cmp edx, edi
jne 0x5b33d8
push edi
push ecx
push eax
mov ecx, esi
call fcn.00567970
jmp 0x5b598d
push ecx
push eax
lea ecx, [esp + 0x374]
mov dword [esp + 0x24], edi
call fcn.0058cbf0
lea ecx, [esp + 0x70]
mov dword [esp + 0x4a8], 1
call fcn.00584d90
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00516c60
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004effc0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004effc0
push fcn.004f08d0
push fcn.004effc0
push 2
push 0x24
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x4bc], 5
call fcn.005bf50c
push fcn.004f08d0
push fcn.004effc0
push 2
push 0x24
lea edx, [esp + 0x2a4]
push edx
mov byte [esp + 0x4bc], 6
call fcn.005bf50c
push fcn.00481ef0
push fcn.0045abd0
push 3
push 0x10
lea eax, [esp + 0x178]
push eax
mov byte [esp + 0x4bc], 7
call fcn.005bf50c
push fcn.00481ef0
push fcn.0045abd0
push 3
push 0x10
lea ecx, [esp + 0x1a8]
push ecx
mov byte [esp + 0x4bc], 8
call fcn.005bf50c
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f7190
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f7190
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004effc0
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004effc0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004effc0
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 0x5b5850
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
ja 0x5b5825
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x38c]
push eax
call fcn.00588370
add esp, 4
test eax, eax
je 0x5b565c
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.00564110
push 6
mov ecx, edi
call fcn.005aec00
cmp esi, 0x16
jne 0x5b4087
mov eax, dword [0x633c7c]
test eax, eax
je 0x5b3ff6
cmp dword [esp + 0x1c], 0
je 0x5b3ed8
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.004f2070
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.004fbee0
add esp, 8
test eax, eax
jne 0x5b565c
mov edx, dword [esp + 0x290]
push eax
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x250]
call fcn.00584de0
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.00585fb0
test eax, eax
je 0x5b3ce0
push 0
push esi
lea ecx, [esp + 0x270]
call fcn.00520a30
test eax, eax
jne 0x5b3ce0
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 0x5b3774
cmp dword [esp + 0x34], 3
je 0x5b3774
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b3774
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.0051b3f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb8], esp
push ebx
mov byte [esp + 0x500], 0x10
call fcn.00584e10
mov byte [esp + 0x4fc], 0xf
call fcn.005af320
add esp, 0x54
test eax, eax
je 0x5b3760
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.00455e10
test eax, eax
je 0x5b3774
add dword [esp + 0x18], 2
jmp 0x5b3774
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.00586af0
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x34], 1
jne 0x5b3831
cmp dword [esp + 0x38], 3
je 0x5b383c
mov edx, dword [esp + 0x290]
cmp dword [esp + 0x28c], edx
je 0x5b3831
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.0051b3f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x90], esp
push ebx
mov byte [esp + 0x500], 0x11
call fcn.00584e10
mov byte [esp + 0x4fc], 0xf
call fcn.005af320
add esp, 0x54
test eax, eax
je 0x5b381a
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00455e10
test eax, eax
je 0x5b3831
inc dword [esp + 0x18]
jmp 0x5b3831
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebx
call fcn.00586ca0
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x38], 3
jne 0x5b3983
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x16c]
call fcn.0056ad30
and byte [esp + 0x17], 0xfb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [0x633c6c]
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22c]
push eax
push ecx
mov eax, 1
mov esi, 0x633c7c
call fcn.005af620
mov ecx, dword [esp + 0x3a0]
add esp, 0x14
lea edx, [esp + 0x44]
push edx
call fcn.00586ca0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x204]
call fcn.004f3720
mov esi, eax
test esi, esi
jne 0x5b3926
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b3926
lea ecx, [esp + 0x268]
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b3926
cmp dword [esp + 0x30], 4
jne 0x5b3926
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004f3720
mov esi, eax
test esi, esi
je 0x5b3926
mov ecx, dword [0x633cd4]
sub ecx, 3
mov dword [0x633cd4], ecx
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x1fc]
push edx
call fcn.0056ad30
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 [0x633cd0]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x633cd4
call fcn.005af710
add esp, 0x28
jmp 0x5b3ebb
mov ebx, 3
cmp dword [esp + 0x34], ebx
jne 0x5b3ad4
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.0056ad30
and byte [esp + 0x17], 0xfb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x200]
push eax
mov eax, dword [0x633cd0]
lea ecx, [esp + 0x1f]
push ecx
lea edx, [esp + 0x22c]
push edx
push eax
xor eax, eax
mov esi, 0x633cd4
call fcn.005af620
add esp, 0x14
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x390]
call fcn.00586af0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f3720
mov esi, eax
test esi, esi
jne 0x5b3a77
mov ecx, dword [esp + 0x28c]
cmp ecx, dword [esp + 0x290]
je 0x5b3a77
lea ecx, [esp + 0x268]
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b3a77
cmp dword [esp + 0x30], 4
jne 0x5b3a77
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004f3720
mov esi, eax
test esi, esi
je 0x5b3a77
mov ecx, dword [0x633c7c]
sub ecx, ebx
mov dword [0x633c7c], ecx
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x1d8]
push edx
call fcn.0056ad30
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 [0x633c6c]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x633c7c
call fcn.005af710
add esp, 0x28
jmp 0x5b3ebb
mov edi, dword [esp + 0x18]
cmp edi, 2
je 0x5b3b85
cmp edi, ebx
je 0x5b3b85
test byte [esp + 0x17], 1
je 0x5b3b10
mov eax, dword [0x633c7c]
mov esi, 1
mov ecx, eax
add eax, esi
lea edx, [esp + 0x1dc]
mov dword [0x633c7c], eax
push edx
jmp 0x5b3bc4
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056ab50
mov ecx, dword [0x633c7c]
add ecx, ebx
mov esi, 1
mov dword [0x633c7c], ecx
cmp dword [esp + 0x40], esi
jne 0x5b3b63
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x324]
push edx
call fcn.0056ab50
add dword [0x633c7c], ebx
jmp 0x5b3bd2
cmp dword [esp + 0x1c], esi
jne 0x5b3bd2
mov eax, ecx
shl eax, 4
add eax, dword [0x633c6c]
add ecx, esi
mov dword [0x633c7c], ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
jmp 0x5b3bcd
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
mov esi, 1
lea edx, [esp + 0x1dc]
add eax, esi
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
add eax, esi
mov dword [0x633c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056aae0
cmp edi, esi
je 0x5b3c93
cmp edi, ebx
je 0x5b3c93
test byte [esp + 0x17], 2
je 0x5b3c12
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
jmp 0x5b3ebb
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056ab50
mov ecx, dword [0x633cd4]
add ecx, ebx
mov dword [0x633cd4], ecx
cmp dword [esp + 0x58], esi
jne 0x5b3c63
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x348]
push edx
call fcn.0056ab50
add dword [0x633cd4], ebx
jmp 0x5b3ebb
cmp dword [esp + 0x6c], esi
jne 0x5b3ebb
mov eax, ecx
inc ecx
shl eax, 4
add eax, dword [0x633cd0]
mov dword [0x633cd4], ecx
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call fcn.0056aae0
jmp 0x5b3ebb
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
add eax, esi
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [0x633cd4], eax
lea eax, [esp + 0x208]
push eax
call fcn.0056aae0
jmp 0x5b3ebb
mov esi, dword [esp + 0x18]
mov ebx, 3
cmp esi, 2
je 0x5b3d34
cmp esi, ebx
je 0x5b3d34
test byte [esp + 0x17], 1
je 0x5b3d10
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x633c7c], eax
push edx
jmp 0x5b3d6c
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056ab50
add dword [0x633c7c], ebx
jmp 0x5b3d7a
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
mov dword [0x633c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056aae0
cmp esi, 1
je 0x5b3dc5
cmp esi, ebx
je 0x5b3dc5
test byte [esp + 0x17], 2
je 0x5b3da1
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x633cd4], eax
push edx
jmp 0x5b3dfd
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056ab50
add dword [0x633cd4], ebx
jmp 0x5b3e0b
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056aae0
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051db10
add dword [0x633c7c], ebx
mov ecx, edi
call fcn.005b2510
mov edx, dword [0x633c7c]
mov eax, dword [0x633c6c]
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 [0x633c7c], 0
call fcn.004eecb0
test eax, eax
je 0x5b3ebb
mov ecx, dword [0x633c6c]
push ecx
mov ecx, esi
call fcn.00585450
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x138], eax
call fcn.0056aae0
mov dword [0x633c7c], ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.00584e40
mov edi, dword [esp + 0x68]
jmp 0x5b4061
mov edx, dword [0x633cd4]
mov esi, dword [esp + 0x38c]
shl edx, 4
add edx, dword [0x633cd0]
lea ecx, [esp + 0x34]
push ecx
push edx
shl eax, 4
add eax, dword [0x633c6c]
lea ecx, [esp + 0x40]
push ecx
push eax
add esi, 0xc
push esi
lea ecx, [esp + 0x84]
call fcn.00585fb0
test eax, eax
je 0x5b3f3e
push esi
lea ecx, [esp + 0x74]
call fcn.00586e50
test eax, eax
jne 0x5b3f3e
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add dword [0x633c7c], edx
add dword [0x633cd4], eax
jmp 0x5b4061
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
push ecx
lea ecx, [esp + 0x74]
call fcn.005857b0
mov ebx, 3
add dword [0x633c7c], ebx
mov ecx, edi
call fcn.005b2510
mov edx, dword [0x633c7c]
mov eax, dword [0x633c6c]
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 [0x633c7c], 0
call fcn.004eecb0
test eax, eax
je 0x5b4068
mov ecx, dword [0x633c6c]
push ecx
mov ecx, esi
call fcn.00585450
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x144]
push edx
mov dword [esp + 0x148], eax
call fcn.0056aae0
mov dword [0x633c7c], ebx
jmp 0x5b4061
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x5b400d
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 8]
je 0x5b4068
mov edx, dword [0x633c6c]
push edx
mov ecx, esi
call fcn.00585450
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0x110], eax
call fcn.0056aae0
mov dword [0x633c7c], 3
mov esi, dword [esp + 0x38c]
push esi
lea ecx, [esp + 0x74]
call fcn.00587b20
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x5b565c
cmp esi, 0x11
jne 0x5b565c
xor esi, esi
cmp dword [0x633c7c], esi
je 0x5b53c4
cmp dword [esp + 0x1c], esi
je 0x5b4451
mov ebx, dword [esp + 0x18]
cmp ebx, 1
je 0x5b40f8
cmp ebx, 3
je 0x5b40f8
test byte [esp + 0x17], 2
je 0x5b40d3
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
lea eax, [esp + 0x200]
jmp 0x5b412f
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056ab50
add dword [0x633cd4], 3
jmp 0x5b413e
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
lea eax, [esp + 0x208]
shl ecx, 4
add ecx, dword [0x633cd0]
push eax
call fcn.0056aae0
cmp ebx, 2
je 0x5b4195
cmp ebx, 3
je 0x5b4195
test byte [esp + 0x17], 1
je 0x5b4166
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x633c7c], eax
push edx
jmp 0x5b41cd
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.0056ab50
mov eax, dword [0x633c7c]
mov ebx, 3
add eax, ebx
mov dword [0x633c7c], eax
jmp 0x5b41e5
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
mov dword [0x633c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ebx, 3
shl eax, 4
add eax, dword [0x633c6c]
lea ecx, [esp + 0x268]
push eax
call fcn.0051db10
add dword [0x633c7c], ebx
mov ecx, edi
call fcn.005b2510
mov ecx, dword [0x633c7c]
mov edx, dword [0x633c6c]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x633c6c]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x633c7c], esi
call fcn.0051d420
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov dword [0x633c7c], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0x108], edx
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x108], eax
call fcn.0056aae0
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
cmp eax, dword [ecx + 0x28]
je 0x5b561f
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b5618
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.0051b3f0
mov ecx, edi
call fcn.005aeb10
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5b441b
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004eecb0
test eax, eax
je 0x5b4322
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], ebx
jmp 0x5b4368
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [0x633c7c], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.0056aae0
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004eecb0
test eax, eax
je 0x5b43a4
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x294]
push edx
call fcn.0056ab50
add dword [0x633cd4], ebx
jmp 0x5b43ea
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [0x633cd4], eax
lea eax, [esp + 0x298]
push eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x200]
call fcn.004f1bb0
mov dword [esp + 0x18], esi
jmp 0x5b55da
cmp eax, 2
jne 0x5b4448
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004f1bb0
mov dword [esp + 0x18], esi
jmp 0x5b55da
push 0x3e8
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x394]
call fcn.004f1fd0
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 0x5b454f
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b4548
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.0051b3f0
mov ecx, esi
call fcn.005aeb10
mov dword [esp + 0x60], eax
add esp, 0x30
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
mov ecx, esi
push ecx
lea ecx, [esp + 0x200]
call fcn.004f1bb0
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], 0
call fcn.00455e10
test eax, eax
je 0x5b452a
mov dword [esp + 0x18], 2
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00455e10
test eax, eax
je 0x5b4570
inc dword [esp + 0x18]
jmp 0x5b4570
mov ecx, dword [esp + 0x38c]
lea edx, [esp + 0x1fc]
push edx
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005ae970
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.00585fb0
test eax, eax
je 0x5b500d
mov ecx, dword [esp + 0x38c]
push 1
lea eax, [esp + 0x78]
push eax
call fcn.00520a30
test eax, eax
jne 0x5b500d
cmp dword [esp + 0x38], 1
jne 0x5b4691
cmp dword [esp + 0x34], 3
je 0x5b4691
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b4691
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.0051b3f0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xe0], esp
push eax
mov byte [esp + 0x500], 0x12
call fcn.00584e10
mov byte [esp + 0x4fc], 0xe
call fcn.005af320
add esp, 0x54
test eax, eax
jne 0x5b4691
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00586af0
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x50]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov ebx, 1
lea edi, [ebx + 2]
cmp dword [esp + 0x34], ebx
jne 0x5b4752
cmp dword [esp + 0x38], edi
je 0x5b475c
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b4752
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.0051b3f0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
mov byte [esp + 0x500], 0x13
call fcn.00584e10
mov byte [esp + 0x4fc], 0xe
call fcn.005af320
add esp, 0x54
test eax, eax
jne 0x5b474d
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00586ca0
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov edi, 3
cmp dword [esp + 0x38], edi
jne 0x5b4bbc
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x16c]
call fcn.0056ad30
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x1dc]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x5b4796
or byte [esp + 0x17], 4
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x224]
call fcn.004f3090
test byte [esp + 0x17], 4
je 0x5b47d7
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
jmp 0x5b47f9
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
lea eax, [esp + 0x220]
push eax
call fcn.0056ab50
add dword [0x633c7c], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00586ca0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x204]
call fcn.004f3720
mov esi, eax
test esi, esi
jne 0x5b488b
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b4a0d
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b4a06
cmp dword [esp + 0x30], 4
jne 0x5b4a06
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x2c0]
call fcn.004f3720
mov esi, eax
test esi, esi
je 0x5b488b
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x200]
call fcn.004f1bb0
mov dword [esp + 0x6c], ebx
cmp esi, ebx
jne 0x5b48f5
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.004fbee0
add esp, 8
test eax, eax
je 0x5b48c6
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.004f2f60
jmp 0x5b50aa
cmp esi, 2
jne 0x5b4a06
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.004fe860
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.004fe860
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5b49a0
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.004fbee0
add esp, 8
test eax, eax
je 0x5b4971
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.004f2f60
jmp 0x5b50aa
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.004fbee0
add esp, 8
test eax, eax
je 0x5b49d7
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.004f2f60
jmp 0x5b50aa
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b4b96
lea eax, [esp + 0x168]
push eax
call fcn.0051d420
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x16c]
call fcn.0056ad30
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f3720
test eax, eax
je 0x5b4ab1
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.004f3090
lea ecx, [esp + 0x220]
call fcn.004f2cb0
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056ab50
add dword [0x633cd4], edi
jmp 0x5b50aa
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x204]
call fcn.004eecb0
test eax, eax
je 0x5b4b70
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f71b0
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.004f8330
test eax, eax
mov eax, dword [0x633cd4]
je 0x5b4b3b
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], ecx
mov ecx, eax
add eax, ebx
mov dword [0x633cd4], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x98], edx
push eax
jmp 0x5b4b49
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
mov dword [0x633cd4], eax
push edx
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056aae0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f7220
jmp 0x5b50aa
mov eax, dword [0x633cd4]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [0x633cd4], eax
lea eax, [esp + 0x50]
push eax
call fcn.0056aae0
jmp 0x5b50aa
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
jmp 0x5b50aa
cmp dword [esp + 0x34], edi
jne 0x5b50aa
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x19c]
call fcn.0056ad30
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x200]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fbee0
add esp, 8
test eax, eax
je 0x5b4c00
or byte [esp + 0x17], 4
lea eax, [esp + 0x200]
push eax
lea ecx, [esp + 0x224]
call fcn.004f3090
test byte [esp + 0x17], 4
je 0x5b4c41
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
jmp 0x5b4c63
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea eax, [esp + 0x220]
push eax
call fcn.0056ab50
add dword [0x633cd4], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00586af0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f3720
mov esi, eax
test esi, esi
jne 0x5b4cf5
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b4e77
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b4e70
cmp dword [esp + 0x30], 4
jne 0x5b4e70
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x308]
call fcn.004f3720
mov esi, eax
test esi, esi
je 0x5b4cf5
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
mov dword [esp + 0x58], ebx
cmp esi, ebx
jne 0x5b4d5f
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.004fbee0
add esp, 8
test eax, eax
je 0x5b4d30
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.004f2f60
jmp 0x5b50aa
cmp esi, 2
jne 0x5b4e70
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.004fe860
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.004fe860
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5b4e0a
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.004fbee0
add esp, 8
test eax, eax
je 0x5b4ddb
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.004f2f60
jmp 0x5b50aa
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.004fbee0
add esp, 8
test eax, eax
je 0x5b4e41
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.004f2f60
jmp 0x5b50aa
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b4fe7
lea eax, [esp + 0x198]
push eax
call fcn.0051d420
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.0056ad30
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f3720
test eax, eax
je 0x5b4f0f
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.004f2f60
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], edi
jmp 0x5b50aa
lea edx, [esp + 0x22c]
push edx
lea ecx, [esp + 0x1e0]
call fcn.004eecb0
test eax, eax
je 0x5b4fc1
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f71b0
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.004f8330
test eax, eax
mov eax, dword [0x633c7c]
je 0x5b4fa5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf4], ecx
mov ecx, eax
add eax, ebx
mov dword [0x633c7c], eax
lea eax, [esp + 0xf4]
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [esp + 0xf8], edx
push eax
jmp 0x5b4b52
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [0x633c7c], eax
push edx
jmp 0x5b4b52
mov eax, dword [0x633c7c]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [0x633c7c], eax
lea eax, [esp + 0x50]
push eax
call fcn.0056aae0
jmp 0x5b50aa
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
jmp 0x5b50aa
mov eax, dword [0x633c7c]
shl eax, 4
add eax, dword [0x633c6c]
lea ecx, [esp + 0x70]
push eax
call fcn.005857b0
mov ebx, 3
add dword [0x633c7c], ebx
mov ecx, edi
call fcn.005b2510
mov ecx, dword [0x633c7c]
mov edx, dword [0x633c6c]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x633c6c]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x633c7c], esi
call fcn.0051d420
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov dword [0x633c7c], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], eax
call fcn.0056aae0
mov edi, ebx
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5b5351
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b5351
cmp dword [esp + 0x30], 4
jne 0x5b5351
cmp dword [esp + 0x6c], 0
jne 0x5b5211
cmp dword [esp + 0x40], 1
jne 0x5b5112
lea ecx, [esp + 0x348]
push ecx
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056ab50
add dword [0x633cd4], edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x248]
call fcn.004f29d0
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x4ac], 0x16
call fcn.004f1bb0
lea ecx, [esp + 0x208]
push ecx
lea ecx, [esp + 0x204]
call fcn.00455e10
test eax, eax
je 0x5b517b
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x200]
call fcn.004f1bb0
mov dword [esp + 0x30], 2
jmp 0x5b51fd
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004eecb0
test eax, eax
je 0x5b51b7
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056ab50
add dword [0x633cd4], edi
jmp 0x5b51fd
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [0x633cd4], eax
lea eax, [esp + 0x250]
push eax
call fcn.0056aae0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f08d0
cmp dword [esp + 0x58], 0
jne 0x5b5344
cmp dword [esp + 0x1c], 1
jne 0x5b5245
lea ecx, [esp + 0x324]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], edi
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x248]
call fcn.004f29d0
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x4ac], 0x17
call fcn.004f1bb0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00455e10
test eax, eax
je 0x5b52ae
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
mov dword [esp + 0x30], 2
jmp 0x5b5330
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004eecb0
test eax, eax
je 0x5b52ea
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], edi
jmp 0x5b5330
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [0x633c7c], eax
lea eax, [esp + 0x250]
push eax
call fcn.0056aae0
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f08d0
mov dword [esp + 0x18], 0
jmp 0x5b55da
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b563c
mov esi, 1
cmp dword [esp + 0x1c], esi
jne 0x5b5392
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x324]
push edx
call fcn.0056ab50
add dword [0x633c7c], 3
cmp dword [esp + 0x40], esi
jne 0x5b563c
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea eax, [esp + 0x348]
push eax
call fcn.0056ab50
add dword [0x633cd4], 3
jmp 0x5b563c
mov ecx, dword [0x633c6c]
and byte [esp + 0x17], 4
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0051d420
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
mov eax, dword [0x633c6c]
mov edi, 3
mov dword [0x633c7c], edi
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], eax
call fcn.0056aae0
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5b561f
call fcn.004f2e40
fcomp qword [0x5eede0]
fnstsw ax
test ah, 0x41
jne 0x5b5618
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.0051b3f0
mov ecx, esi
call fcn.005aeb10
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5b55ad
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004eecb0
test eax, eax
je 0x5b54c7
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], edi
jmp 0x5b550d
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633c6c]
mov dword [0x633c7c], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.0056aae0
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004eecb0
test eax, eax
je 0x5b5549
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x294]
push edx
call fcn.0056ab50
add dword [0x633cd4], edi
jmp 0x5b558f
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x633cd0]
mov dword [0x633cd4], eax
lea eax, [esp + 0x298]
push eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x5b55ce
cmp eax, 2
jne 0x5b55da
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004f1bb0
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004f1bb0
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00455e10
test eax, eax
je 0x5b55fa
mov dword [esp + 0x18], 2
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x204]
call fcn.00455e10
test eax, eax
je 0x5b563c
inc dword [esp + 0x18]
jmp 0x5b563c
mov ecx, dword [esp + 0x38c]
lea eax, [esp + 0x1fc]
push eax
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005ae970
mov dword [esp + 0x1c], eax
add esp, 4
mov ecx, dword [esp + 0x38c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051b1c0
mov edi, dword [esp + 0x68]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x36c]
call fcn.00536de0
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
jbe 0x5b3565
cmp dword [esp + 0x1c], 0
je 0x5b57e7
push 6
mov ecx, edi
call fcn.00564110
push 6
mov ecx, edi
call fcn.005aec00
mov esi, dword [esp + 0x18]
mov edi, 3
cmp esi, 2
je 0x5b56ec
cmp esi, edi
je 0x5b56ec
test byte [esp + 0x17], 1
je 0x5b56c8
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
mov dword [0x633c7c], eax
lea eax, [esp + 0x1dc]
jmp 0x5b5723
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
call fcn.0056ab50
add dword [0x633c7c], edi
jmp 0x5b5732
mov eax, dword [0x633c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x633c7c], eax
call fcn.0056aae0
mov eax, dword [0x633c7c]
mov ecx, eax
inc eax
mov dword [0x633c7c], eax
lea eax, [esp + 0x1e4]
shl ecx, 4
add ecx, dword [0x633c6c]
push eax
call fcn.0056aae0
cmp esi, 1
je 0x5b577d
cmp esi, edi
je 0x5b577d
test byte [esp + 0x17], 2
je 0x5b5759
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x633cd4], eax
push edx
jmp 0x5b57b5
mov ecx, dword [0x633cd4]
shl ecx, 4
add ecx, dword [0x633cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.0056ab50
add dword [0x633cd4], edi
jmp 0x5b57c3
mov eax, dword [0x633cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x633cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x633cd4], eax
call fcn.0056aae0
mov eax, dword [0x633cd4]
mov ecx, eax
inc eax
mov dword [0x633cd4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x633cd0]
call fcn.0056aae0
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051db10
add dword [0x633c7c], edi
jmp 0x5b5825
cmp dword [esp + 0x3c], 0
je 0x5b5825
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x74]
jne 0x5b5805
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x5b5825
mov ecx, dword [0x633c7c]
shl ecx, 4
add ecx, dword [0x633c6c]
push ecx
lea ecx, [esp + 0x74]
call fcn.005857b0
add dword [0x633c7c], 3
mov esi, dword [esp + 0x68]
mov ecx, esi
call fcn.005b2510
mov edx, dword [0x633c7c]
mov eax, dword [0x633c6c]
push 0
push edx
mov edx, dword [esi + 0x34]
push eax
mov ecx, esi
call edx
mov dword [0x633c7c], 0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004f08d0
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004f08d0
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004f08d0
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f7220
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f7220
push fcn.00481ef0
push 3
push 0x10
lea eax, [esp + 0x1a4]
push eax
mov byte [esp + 0x4b8], 8
call fcn.005bf4a9
push fcn.00481ef0
push 3
push 0x10
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x4b8], 7
call fcn.005bf4a9
push fcn.004f08d0
push 2
push 0x24
lea edx, [esp + 0x2a0]
push edx
mov byte [esp + 0x4b8], 6
call fcn.005bf4a9
push fcn.004f08d0
push 2
push 0x24
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0x4b8], 5
call fcn.005bf4a9
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004f08d0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004f08d0
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00516cb0
lea ecx, [esp + 0x70]
mov byte [esp + 0x4a8], 1
call fcn.00584e40
lea ecx, [esp + 0x36c]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.0058be60
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.005bf276
mov esp, ebp
pop ebp
ret 8