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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5e91a4
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x62fda0]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x62fda0]
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 0x5b1364
test cl, 8
je 0x5b135f
mov ecx, dword [eax + 4]
jmp 0x5b1372
mov ecx, dword [eax + 0xc]
jmp 0x5b1372
test byte [eax + 0x12], 8
je 0x5b136f
mov ecx, dword [eax + 0x14]
jmp 0x5b1372
mov ecx, dword [eax + 0x1c]
lea edx, [ecx + 1]
mov ecx, dword [ebp + 0xc]
sar edx, 1
cmp ecx, 2
jge 0x5b1413
cmp ecx, 1
jne 0x5b39dd
test edx, edx
je 0x5b39dd
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.004ee240
mov ecx, dword [0x630c6c]
push eax
mov dword [esp + 0x4ac], 0
call fcn.00568bc0
lea ecx, [esp + 0x244]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.004eeaf0
mov edx, dword [0x630c6c]
mov eax, dword [esi + 0x34]
push 0
push 3
push edx
mov ecx, esi
call eax
jmp 0x5b39dd
xor edi, edi
cmp edx, edi
jne 0x5b1428
push edi
push ecx
push eax
mov ecx, esi
call fcn.005659d0
jmp 0x5b39dd
push ecx
push eax
lea ecx, [esp + 0x374]
mov dword [esp + 0x24], edi
call fcn.0058ac50
lea ecx, [esp + 0x70]
mov dword [esp + 0x4a8], 1
call fcn.00582da0
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00514e60
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004ee1e0
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004ee1e0
push fcn.004eeaf0
push fcn.004ee1e0
push 2
push 0x24
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x4bc], 5
call fcn.005bd55c
push fcn.004eeaf0
push fcn.004ee1e0
push 2
push 0x24
lea edx, [esp + 0x2a4]
push edx
mov byte [esp + 0x4bc], 6
call fcn.005bd55c
push fcn.0045c490
push fcn.00568b40
push 3
push 0x10
lea eax, [esp + 0x178]
push eax
mov byte [esp + 0x4bc], 7
call fcn.005bd55c
push fcn.0045c490
push fcn.00568b40
push 3
push 0x10
lea ecx, [esp + 0x1a8]
push ecx
mov byte [esp + 0x4bc], 8
call fcn.005bd55c
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f5420
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f5420
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004ee1e0
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004ee1e0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004ee1e0
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 0x5b38a0
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
ja 0x5b3875
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x38c]
push eax
call fcn.005863d0
add esp, 4
test eax, eax
je 0x5b36ac
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.00562170
push 6
mov ecx, edi
call fcn.005acc30
cmp esi, 0x16
jne 0x5b20d7
mov eax, dword [0x630c7c]
test eax, eax
je 0x5b2046
cmp dword [esp + 0x1c], 0
je 0x5b1f28
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.004f02f0
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.004fa0c0
add esp, 8
test eax, eax
jne 0x5b36ac
mov edx, dword [esp + 0x290]
push eax
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x250]
call fcn.00582df0
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.00583fc0
test eax, eax
je 0x5b1d30
push 0
push esi
lea ecx, [esp + 0x270]
call fcn.0051ec30
test eax, eax
jne 0x5b1d30
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 0x5b17c4
cmp dword [esp + 0x34], 3
je 0x5b17c4
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b17c4
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.005195f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xb8], esp
push ebx
mov byte [esp + 0x500], 0x10
call fcn.00582e20
mov byte [esp + 0x4fc], 0xf
call fcn.005ad350
add esp, 0x54
test eax, eax
je 0x5b17b0
lea eax, [esp + 0x1e4]
push eax
lea ecx, [esp + 0x1e0]
call fcn.00454440
test eax, eax
je 0x5b17c4
add dword [esp + 0x18], 2
jmp 0x5b17c4
lea ecx, [esp + 0x44]
push ecx
mov ecx, ebx
call fcn.00584b00
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x34], 1
jne 0x5b1881
cmp dword [esp + 0x38], 3
je 0x5b188c
mov edx, dword [esp + 0x290]
cmp dword [esp + 0x28c], edx
je 0x5b1881
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.005195f0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x90], esp
push ebx
mov byte [esp + 0x500], 0x11
call fcn.00582e20
mov byte [esp + 0x4fc], 0xf
call fcn.005ad350
add esp, 0x54
test eax, eax
je 0x5b186a
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00454440
test eax, eax
je 0x5b1881
inc dword [esp + 0x18]
jmp 0x5b1881
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebx
call fcn.00584cb0
mov dword [esp + 0x6c], 1
cmp dword [esp + 0x38], 3
jne 0x5b19d3
lea edx, [esp + 0x220]
push edx
lea ecx, [esp + 0x16c]
call fcn.00568da0
and byte [esp + 0x17], 0xfb
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1dc]
push ecx
mov ecx, dword [0x630c6c]
lea edx, [esp + 0x1f]
push edx
lea eax, [esp + 0x22c]
push eax
push ecx
mov eax, 1
mov esi, 0x630c7c
call fcn.005ad650
mov ecx, dword [esp + 0x3a0]
add esp, 0x14
lea edx, [esp + 0x44]
push edx
call fcn.00584cb0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x204]
call fcn.004f19a0
mov esi, eax
test esi, esi
jne 0x5b1976
mov edx, dword [esp + 0x28c]
cmp edx, dword [esp + 0x290]
je 0x5b1976
lea ecx, [esp + 0x268]
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b1976
cmp dword [esp + 0x30], 4
jne 0x5b1976
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004f19a0
mov esi, eax
test esi, esi
je 0x5b1976
mov ecx, dword [0x630cd4]
sub ecx, 3
mov dword [0x630cd4], ecx
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x1fc]
push edx
call fcn.00568da0
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 [0x630cd0]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x630cd4
call fcn.005ad740
add esp, 0x28
jmp 0x5b1f0b
mov ebx, 3
cmp dword [esp + 0x34], ebx
jne 0x5b1b24
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00568da0
and byte [esp + 0x17], 0xfb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x200]
push eax
mov eax, dword [0x630cd0]
lea ecx, [esp + 0x1f]
push ecx
lea edx, [esp + 0x22c]
push edx
push eax
xor eax, eax
mov esi, 0x630cd4
call fcn.005ad650
add esp, 0x14
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x390]
call fcn.00584b00
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f19a0
mov esi, eax
test esi, esi
jne 0x5b1ac7
mov ecx, dword [esp + 0x28c]
cmp ecx, dword [esp + 0x290]
je 0x5b1ac7
lea ecx, [esp + 0x268]
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b1ac7
cmp dword [esp + 0x30], 4
jne 0x5b1ac7
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004f19a0
mov esi, eax
test esi, esi
je 0x5b1ac7
mov ecx, dword [0x630c7c]
sub ecx, ebx
mov dword [0x630c7c], ecx
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x1d8]
push edx
call fcn.00568da0
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 [0x630c6c]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, esi
push eax
lea ecx, [esp + 0x290]
mov esi, 0x630c7c
call fcn.005ad740
add esp, 0x28
jmp 0x5b1f0b
mov edi, dword [esp + 0x18]
cmp edi, 2
je 0x5b1bd5
cmp edi, ebx
je 0x5b1bd5
test byte [esp + 0x17], 1
je 0x5b1b60
mov eax, dword [0x630c7c]
mov esi, 1
mov ecx, eax
add eax, esi
lea edx, [esp + 0x1dc]
mov dword [0x630c7c], eax
push edx
jmp 0x5b1c14
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.00568bc0
mov ecx, dword [0x630c7c]
add ecx, ebx
mov esi, 1
mov dword [0x630c7c], ecx
cmp dword [esp + 0x40], esi
jne 0x5b1bb3
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x324]
push edx
call fcn.00568bc0
add dword [0x630c7c], ebx
jmp 0x5b1c22
cmp dword [esp + 0x1c], esi
jne 0x5b1c22
mov eax, ecx
shl eax, 4
add eax, dword [0x630c6c]
add ecx, esi
mov dword [0x630c7c], ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
jmp 0x5b1c1d
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
mov esi, 1
lea edx, [esp + 0x1dc]
add eax, esi
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
add eax, esi
mov dword [0x630c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568b90
cmp edi, esi
je 0x5b1ce3
cmp edi, ebx
je 0x5b1ce3
test byte [esp + 0x17], 2
je 0x5b1c62
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
jmp 0x5b1f0b
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00568bc0
mov ecx, dword [0x630cd4]
add ecx, ebx
mov dword [0x630cd4], ecx
cmp dword [esp + 0x58], esi
jne 0x5b1cb3
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x348]
push edx
call fcn.00568bc0
add dword [0x630cd4], ebx
jmp 0x5b1f0b
cmp dword [esp + 0x6c], esi
jne 0x5b1f0b
mov eax, ecx
inc ecx
shl eax, 4
add eax, dword [0x630cd0]
mov dword [0x630cd4], ecx
lea ecx, [esp + 0x158]
push ecx
mov ecx, eax
call fcn.00568b90
jmp 0x5b1f0b
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x200]
add eax, esi
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
add eax, esi
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [0x630cd4], eax
lea eax, [esp + 0x208]
push eax
call fcn.00568b90
jmp 0x5b1f0b
mov esi, dword [esp + 0x18]
mov ebx, 3
cmp esi, 2
je 0x5b1d84
cmp esi, ebx
je 0x5b1d84
test byte [esp + 0x17], 1
je 0x5b1d60
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x630c7c], eax
push edx
jmp 0x5b1dbc
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.00568bc0
add dword [0x630c7c], ebx
jmp 0x5b1dca
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
mov dword [0x630c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568b90
cmp esi, 1
je 0x5b1e15
cmp esi, ebx
je 0x5b1e15
test byte [esp + 0x17], 2
je 0x5b1df1
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x630cd4], eax
push edx
jmp 0x5b1e4d
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00568bc0
add dword [0x630cd4], ebx
jmp 0x5b1e5b
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568b90
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051bd10
add dword [0x630c7c], ebx
mov ecx, edi
call fcn.005b0540
mov edx, dword [0x630c7c]
mov eax, dword [0x630c6c]
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 [0x630c7c], 0
call fcn.004ece90
test eax, eax
je 0x5b1f0b
mov ecx, dword [0x630c6c]
push ecx
mov ecx, esi
call fcn.00583460
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x134]
push edx
mov dword [esp + 0x138], eax
call fcn.00568b90
mov dword [0x630c7c], ebx
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.00582e50
mov edi, dword [esp + 0x68]
jmp 0x5b20b1
mov edx, dword [0x630cd4]
mov esi, dword [esp + 0x38c]
shl edx, 4
add edx, dword [0x630cd0]
lea ecx, [esp + 0x34]
push ecx
push edx
shl eax, 4
add eax, dword [0x630c6c]
lea ecx, [esp + 0x40]
push ecx
push eax
add esi, 0xc
push esi
lea ecx, [esp + 0x84]
call fcn.00583fc0
test eax, eax
je 0x5b1f8e
push esi
lea ecx, [esp + 0x74]
call fcn.00584e60
test eax, eax
jne 0x5b1f8e
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add dword [0x630c7c], edx
add dword [0x630cd4], eax
jmp 0x5b20b1
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
push ecx
lea ecx, [esp + 0x74]
call fcn.005837c0
mov ebx, 3
add dword [0x630c7c], ebx
mov ecx, edi
call fcn.005b0540
mov edx, dword [0x630c7c]
mov eax, dword [0x630c6c]
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 [0x630c7c], 0
call fcn.004ece90
test eax, eax
je 0x5b20b8
mov ecx, dword [0x630c6c]
push ecx
mov ecx, esi
call fcn.00583460
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x144]
push edx
mov dword [esp + 0x148], eax
call fcn.00568b90
mov dword [0x630c7c], ebx
jmp 0x5b20b1
mov esi, dword [esp + 0x38c]
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 4]
jne 0x5b205d
mov ecx, dword [esi + 0x10]
cmp ecx, dword [esi + 8]
je 0x5b20b8
mov edx, dword [0x630c6c]
push edx
mov ecx, esi
call fcn.00583460
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x10c]
push edx
mov dword [esp + 0x110], eax
call fcn.00568b90
mov dword [0x630c7c], 3
mov esi, dword [esp + 0x38c]
push esi
lea ecx, [esp + 0x74]
call fcn.00585b40
mov dword [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x5b36ac
cmp esi, 0x11
jne 0x5b36ac
xor esi, esi
cmp dword [0x630c7c], esi
je 0x5b3414
cmp dword [esp + 0x1c], esi
je 0x5b24a1
mov ebx, dword [esp + 0x18]
cmp ebx, 1
je 0x5b2148
cmp ebx, 3
je 0x5b2148
test byte [esp + 0x17], 2
je 0x5b2123
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
lea eax, [esp + 0x200]
jmp 0x5b217f
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568bc0
add dword [0x630cd4], 3
jmp 0x5b218e
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
lea eax, [esp + 0x208]
shl ecx, 4
add ecx, dword [0x630cd0]
push eax
call fcn.00568b90
cmp ebx, 2
je 0x5b21e5
cmp ebx, 3
je 0x5b21e5
test byte [esp + 0x17], 1
je 0x5b21b6
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
lea edx, [esp + 0x1dc]
mov dword [0x630c7c], eax
push edx
jmp 0x5b221d
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
lea eax, [esp + 0x1d8]
push eax
call fcn.00568bc0
mov eax, dword [0x630c7c]
mov ebx, 3
add eax, ebx
mov dword [0x630c7c], eax
jmp 0x5b2235
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
mov dword [0x630c7c], eax
lea eax, [esp + 0x1e4]
push eax
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ebx, 3
shl eax, 4
add eax, dword [0x630c6c]
lea ecx, [esp + 0x268]
push eax
call fcn.0051bd10
add dword [0x630c7c], ebx
mov ecx, edi
call fcn.005b0540
mov ecx, dword [0x630c7c]
mov edx, dword [0x630c6c]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x630c6c]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x630c7c], esi
call fcn.0051b620
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov dword [0x630c7c], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0x108], edx
lea edx, [esp + 0x104]
push edx
mov dword [esp + 0x108], eax
call fcn.00568b90
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
and byte [esp + 0x17], 4
cmp eax, dword [ecx + 0x28]
je 0x5b366f
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b3668
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.005195f0
mov ecx, edi
call fcn.005acb40
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5b246b
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004ece90
test eax, eax
je 0x5b2372
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], ebx
jmp 0x5b23b8
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [0x630c7c], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.00568b90
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004ece90
test eax, eax
je 0x5b23f4
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x294]
push edx
call fcn.00568bc0
add dword [0x630cd4], ebx
jmp 0x5b243a
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [0x630cd4], eax
lea eax, [esp + 0x298]
push eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004efe30
lea ecx, [esp + 0x2b8]
push ecx
lea ecx, [esp + 0x200]
call fcn.004efe30
mov dword [esp + 0x18], esi
jmp 0x5b362a
cmp eax, 2
jne 0x5b2498
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004efe30
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004efe30
mov dword [esp + 0x18], esi
jmp 0x5b362a
push 0x3e8
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x394]
call fcn.004f0250
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 0x5b259f
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b2598
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.005195f0
mov ecx, esi
call fcn.005acb40
mov dword [esp + 0x60], eax
add esp, 0x30
lea eax, [esp + 0x2dc]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004efe30
mov ecx, esi
push ecx
lea ecx, [esp + 0x200]
call fcn.004efe30
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x1c], 0
call fcn.00454440
test eax, eax
je 0x5b257a
mov dword [esp + 0x18], 2
lea eax, [esp + 0x208]
push eax
lea ecx, [esp + 0x204]
call fcn.00454440
test eax, eax
je 0x5b25c0
inc dword [esp + 0x18]
jmp 0x5b25c0
mov ecx, dword [esp + 0x38c]
lea edx, [esp + 0x1fc]
push edx
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005ac9a0
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.00583fc0
test eax, eax
je 0x5b305d
mov ecx, dword [esp + 0x38c]
push 1
lea eax, [esp + 0x78]
push eax
call fcn.0051ec30
test eax, eax
jne 0x5b305d
cmp dword [esp + 0x38], 1
jne 0x5b26e1
cmp dword [esp + 0x34], 3
je 0x5b26e1
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b26e1
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.005195f0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xe0], esp
push eax
mov byte [esp + 0x500], 0x12
call fcn.00582e20
mov byte [esp + 0x4fc], 0xe
call fcn.005ad350
add esp, 0x54
test eax, eax
jne 0x5b26e1
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00584b00
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x50]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov ebx, 1
lea edi, [ebx + 2]
cmp dword [esp + 0x34], ebx
jne 0x5b27a2
cmp dword [esp + 0x38], edi
je 0x5b27ac
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b27a2
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.005195f0
sub esp, 0x1c
lea eax, [esp + 0xc4]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
mov byte [esp + 0x500], 0x13
call fcn.00582e20
mov byte [esp + 0x4fc], 0xe
call fcn.005ad350
add esp, 0x54
test eax, eax
jne 0x5b279d
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00584cb0
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov edi, 3
cmp dword [esp + 0x38], edi
jne 0x5b2c0c
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x16c]
call fcn.00568da0
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x1dc]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fa0c0
add esp, 8
test eax, eax
je 0x5b27e6
or byte [esp + 0x17], 4
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x224]
call fcn.004f1310
test byte [esp + 0x17], 4
je 0x5b2827
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
jmp 0x5b2849
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
lea eax, [esp + 0x220]
push eax
call fcn.00568bc0
add dword [0x630c7c], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00584cb0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x204]
call fcn.004f19a0
mov esi, eax
test esi, esi
jne 0x5b28db
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b2a5d
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b2a56
cmp dword [esp + 0x30], 4
jne 0x5b2a56
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x2c0]
call fcn.004f19a0
mov esi, eax
test esi, esi
je 0x5b28db
lea edx, [esp + 0x2b8]
push edx
lea ecx, [esp + 0x200]
call fcn.004efe30
mov dword [esp + 0x6c], ebx
cmp esi, ebx
jne 0x5b2945
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b2916
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.004f11e0
jmp 0x5b30fa
cmp esi, 2
jne 0x5b2a56
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.004fca60
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.004fca60
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5b29f0
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b29c1
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.004f11e0
jmp 0x5b30fa
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b2a27
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.004f11e0
jmp 0x5b30fa
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b2be6
lea eax, [esp + 0x168]
push eax
call fcn.0051b620
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x16c]
call fcn.00568da0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f19a0
test eax, eax
je 0x5b2b01
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.004f1310
lea ecx, [esp + 0x220]
call fcn.004f0f30
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568bc0
add dword [0x630cd4], edi
jmp 0x5b30fa
lea edx, [esp + 0x224]
push edx
lea ecx, [esp + 0x204]
call fcn.004ece90
test eax, eax
je 0x5b2bc0
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x204]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f5440
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.004f6520
test eax, eax
mov eax, dword [0x630cd4]
je 0x5b2b8b
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], ecx
mov ecx, eax
add eax, ebx
mov dword [0x630cd4], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x98], edx
push eax
jmp 0x5b2b99
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
mov dword [0x630cd4], eax
push edx
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568b90
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004f54b0
jmp 0x5b30fa
mov eax, dword [0x630cd4]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [0x630cd4], eax
lea eax, [esp + 0x50]
push eax
call fcn.00568b90
jmp 0x5b30fa
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
jmp 0x5b30fa
cmp dword [esp + 0x34], edi
jne 0x5b30fa
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0x19c]
call fcn.00568da0
and byte [esp + 0x17], 0xfb
lea ecx, [esp + 0x200]
push ecx
lea edx, [esp + 0x228]
push edx
call fcn.004fa0c0
add esp, 8
test eax, eax
je 0x5b2c50
or byte [esp + 0x17], 4
lea eax, [esp + 0x200]
push eax
lea ecx, [esp + 0x224]
call fcn.004f1310
test byte [esp + 0x17], 4
je 0x5b2c91
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x224]
add eax, ebx
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
jmp 0x5b2cb3
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea eax, [esp + 0x220]
push eax
call fcn.00568bc0
add dword [0x630cd4], edi
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x74]
call fcn.00584b00
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1e0]
call fcn.004f19a0
mov esi, eax
test esi, esi
jne 0x5b2d45
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b2ec7
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b2ec0
cmp dword [esp + 0x30], 4
jne 0x5b2ec0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x308]
call fcn.004f19a0
mov esi, eax
test esi, esi
je 0x5b2d45
lea edx, [esp + 0x300]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004efe30
mov dword [esp + 0x58], ebx
cmp esi, ebx
jne 0x5b2daf
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b2d80
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.004f11e0
jmp 0x5b30fa
cmp esi, 2
jne 0x5b2ec0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x80]
push edx
call fcn.004fca60
fstp qword [esp + 0x94]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.004fca60
fcomp qword [esp + 0x9c]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x5b2e5a
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b2e2b
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.004f11e0
jmp 0x5b30fa
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.004fa0c0
add esp, 8
test eax, eax
je 0x5b2e91
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.004f11e0
jmp 0x5b30fa
mov ecx, dword [esp + 0x38c]
mov edx, dword [ecx + 0x24]
cmp edx, dword [ecx + 0x28]
je 0x5b3037
lea eax, [esp + 0x198]
push eax
call fcn.0051b620
lea ecx, [esp + 0x220]
push ecx
lea ecx, [esp + 0x19c]
call fcn.00568da0
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x228]
call fcn.004f19a0
test eax, eax
je 0x5b2f5f
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.004f11e0
lea ecx, [esp + 0x220]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], edi
jmp 0x5b30fa
lea edx, [esp + 0x22c]
push edx
lea ecx, [esp + 0x1e0]
call fcn.004ece90
test eax, eax
je 0x5b3011
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x1e0]
push ecx
lea ecx, [esp + 0x24c]
call fcn.004f5440
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.004f6520
test eax, eax
mov eax, dword [0x630c7c]
je 0x5b2ff5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf4], ecx
mov ecx, eax
add eax, ebx
mov dword [0x630c7c], eax
lea eax, [esp + 0xf4]
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [esp + 0xf8], edx
push eax
jmp 0x5b2ba2
mov ecx, eax
add eax, ebx
lea edx, [esp + 0x50]
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [0x630c7c], eax
push edx
jmp 0x5b2ba2
mov eax, dword [0x630c7c]
mov ecx, eax
add eax, ebx
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [0x630c7c], eax
lea eax, [esp + 0x50]
push eax
call fcn.00568b90
jmp 0x5b30fa
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x50]
add eax, ebx
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
jmp 0x5b30fa
mov eax, dword [0x630c7c]
shl eax, 4
add eax, dword [0x630c6c]
lea ecx, [esp + 0x70]
push eax
call fcn.005837c0
mov ebx, 3
add dword [0x630c7c], ebx
mov ecx, edi
call fcn.005b0540
mov ecx, dword [0x630c7c]
mov edx, dword [0x630c6c]
mov eax, dword [edi + 0x34]
push esi
push ecx
push edx
mov ecx, edi
call eax
mov ecx, dword [0x630c6c]
push ecx
mov ecx, dword [esp + 0x390]
mov dword [0x630c7c], esi
call fcn.0051b620
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov dword [0x630c7c], ebx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0xa0], eax
call fcn.00568b90
mov edi, ebx
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5b33a1
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b33a1
cmp dword [esp + 0x30], 4
jne 0x5b33a1
cmp dword [esp + 0x6c], 0
jne 0x5b3261
cmp dword [esp + 0x40], 1
jne 0x5b3162
lea ecx, [esp + 0x348]
push ecx
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568bc0
add dword [0x630cd4], edi
lea edx, [esp + 0x1fc]
push edx
lea ecx, [esp + 0x248]
call fcn.004f0c50
lea eax, [esp + 0x2b8]
push eax
lea ecx, [esp + 0x200]
mov byte [esp + 0x4ac], 0x16
call fcn.004efe30
lea ecx, [esp + 0x208]
push ecx
lea ecx, [esp + 0x204]
call fcn.00454440
test eax, eax
je 0x5b31cb
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x200]
call fcn.004efe30
mov dword [esp + 0x30], 2
jmp 0x5b324d
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004ece90
test eax, eax
je 0x5b3207
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568bc0
add dword [0x630cd4], edi
jmp 0x5b324d
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [0x630cd4], eax
lea eax, [esp + 0x250]
push eax
call fcn.00568b90
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004eeaf0
cmp dword [esp + 0x58], 0
jne 0x5b3394
cmp dword [esp + 0x1c], 1
jne 0x5b3295
lea ecx, [esp + 0x324]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], edi
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x248]
call fcn.004f0c50
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
mov byte [esp + 0x4ac], 0x17
call fcn.004efe30
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00454440
test eax, eax
je 0x5b32fe
lea edx, [esp + 0x244]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004efe30
mov dword [esp + 0x30], 2
jmp 0x5b3380
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x24c]
call fcn.004ece90
test eax, eax
je 0x5b333a
lea ecx, [esp + 0x244]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], edi
jmp 0x5b3380
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x248]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [0x630c7c], eax
lea eax, [esp + 0x250]
push eax
call fcn.00568b90
lea ecx, [esp + 0x244]
mov byte [esp + 0x4a8], 0xe
call fcn.004eeaf0
mov dword [esp + 0x18], 0
jmp 0x5b362a
mov eax, dword [esp + 0x38c]
mov ecx, dword [eax + 0x24]
cmp ecx, dword [eax + 0x28]
je 0x5b368c
mov esi, 1
cmp dword [esp + 0x1c], esi
jne 0x5b33e2
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x324]
push edx
call fcn.00568bc0
add dword [0x630c7c], 3
cmp dword [esp + 0x40], esi
jne 0x5b368c
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea eax, [esp + 0x348]
push eax
call fcn.00568bc0
add dword [0x630cd4], 3
jmp 0x5b368c
mov ecx, dword [0x630c6c]
and byte [esp + 0x17], 4
push ecx
mov ecx, dword [esp + 0x390]
call fcn.0051b620
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
mov eax, dword [0x630c6c]
mov edi, 3
mov dword [0x630c7c], edi
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [esp + 0xa8], edx
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], eax
call fcn.00568b90
mov ecx, dword [esp + 0x38c]
mov eax, dword [ecx + 0x24]
cmp eax, dword [ecx + 0x28]
je 0x5b366f
call fcn.004f10c0
fcomp qword [0x5ecc70]
fnstsw ax
test ah, 0x41
jne 0x5b3668
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.005195f0
mov ecx, esi
call fcn.005acb40
add esp, 0x30
mov dword [esp + 0x30], eax
cmp eax, 4
jne 0x5b35fd
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0x2e4]
call fcn.004ece90
test eax, eax
je 0x5b3517
lea ecx, [esp + 0x2dc]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], edi
jmp 0x5b355d
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x2e0]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630c6c]
mov dword [0x630c7c], eax
lea eax, [esp + 0x2e8]
push eax
call fcn.00568b90
lea ecx, [esp + 0x2a0]
push ecx
lea ecx, [esp + 0x29c]
call fcn.004ece90
test eax, eax
je 0x5b3599
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x294]
push edx
call fcn.00568bc0
add dword [0x630cd4], edi
jmp 0x5b35df
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
shl ecx, 4
add ecx, dword [0x630cd0]
mov dword [0x630cd4], eax
lea eax, [esp + 0x298]
push eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x2a0]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
lea eax, [esp + 0x300]
push eax
lea ecx, [esp + 0x1dc]
call fcn.004efe30
lea ecx, [esp + 0x2b8]
push ecx
jmp 0x5b361e
cmp eax, 2
jne 0x5b362a
lea edx, [esp + 0x2dc]
push edx
lea ecx, [esp + 0x1dc]
call fcn.004efe30
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x200]
call fcn.004efe30
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x1e0]
call fcn.00454440
test eax, eax
je 0x5b364a
mov dword [esp + 0x18], 2
lea edx, [esp + 0x208]
push edx
lea ecx, [esp + 0x204]
call fcn.00454440
test eax, eax
je 0x5b368c
inc dword [esp + 0x18]
jmp 0x5b368c
mov ecx, dword [esp + 0x38c]
lea eax, [esp + 0x1fc]
push eax
lea edi, [esp + 0x1dc]
mov esi, ecx
call fcn.005ac9a0
mov dword [esp + 0x1c], eax
add esp, 4
mov ecx, dword [esp + 0x38c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.005193c0
mov edi, dword [esp + 0x68]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x36c]
call fcn.00535020
mov edx, dword [esp + 0x378]
cmp edx, dword [esp + 0x37c]
jbe 0x5b15b5
cmp dword [esp + 0x1c], 0
je 0x5b3837
push 6
mov ecx, edi
call fcn.00562170
push 6
mov ecx, edi
call fcn.005acc30
mov esi, dword [esp + 0x18]
mov edi, 3
cmp esi, 2
je 0x5b373c
cmp esi, edi
je 0x5b373c
test byte [esp + 0x17], 1
je 0x5b3718
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
mov dword [0x630c7c], eax
lea eax, [esp + 0x1dc]
jmp 0x5b3773
lea ecx, [esp + 0x1d8]
push ecx
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
call fcn.00568bc0
add dword [0x630c7c], edi
jmp 0x5b3782
mov eax, dword [0x630c7c]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630c6c]
lea edx, [esp + 0x1dc]
inc eax
push edx
mov dword [0x630c7c], eax
call fcn.00568b90
mov eax, dword [0x630c7c]
mov ecx, eax
inc eax
mov dword [0x630c7c], eax
lea eax, [esp + 0x1e4]
shl ecx, 4
add ecx, dword [0x630c6c]
push eax
call fcn.00568b90
cmp esi, 1
je 0x5b37cd
cmp esi, edi
je 0x5b37cd
test byte [esp + 0x17], 2
je 0x5b37a9
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
lea edx, [esp + 0x200]
mov dword [0x630cd4], eax
push edx
jmp 0x5b3805
mov ecx, dword [0x630cd4]
shl ecx, 4
add ecx, dword [0x630cd0]
lea eax, [esp + 0x1fc]
push eax
call fcn.00568bc0
add dword [0x630cd4], edi
jmp 0x5b3813
mov eax, dword [0x630cd4]
mov ecx, eax
shl ecx, 4
add ecx, dword [0x630cd0]
lea edx, [esp + 0x200]
inc eax
push edx
mov dword [0x630cd4], eax
call fcn.00568b90
mov eax, dword [0x630cd4]
mov ecx, eax
inc eax
mov dword [0x630cd4], eax
lea eax, [esp + 0x208]
push eax
shl ecx, 4
add ecx, dword [0x630cd0]
call fcn.00568b90
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
push ecx
lea ecx, [esp + 0x26c]
call fcn.0051bd10
add dword [0x630c7c], edi
jmp 0x5b3875
cmp dword [esp + 0x3c], 0
je 0x5b3875
mov edx, dword [esp + 0x7c]
cmp edx, dword [esp + 0x74]
jne 0x5b3855
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x5b3875
mov ecx, dword [0x630c7c]
shl ecx, 4
add ecx, dword [0x630c6c]
push ecx
lea ecx, [esp + 0x74]
call fcn.005837c0
add dword [0x630c7c], 3
mov esi, dword [esp + 0x68]
mov ecx, esi
call fcn.005b0540
mov edx, dword [0x630c7c]
mov eax, dword [0x630c6c]
push 0
push edx
mov edx, dword [esi + 0x34]
push eax
mov ecx, esi
call edx
mov dword [0x630c7c], 0
lea ecx, [esp + 0x348]
mov byte [esp + 0x4a8], 0xd
call fcn.004eeaf0
lea ecx, [esp + 0x324]
mov byte [esp + 0x4a8], 0xc
call fcn.004eeaf0
lea ecx, [esp + 0x220]
mov byte [esp + 0x4a8], 0xb
call fcn.004eeaf0
lea ecx, [esp + 0x154]
mov byte [esp + 0x4a8], 0xa
call fcn.004f54b0
lea ecx, [esp + 0x44]
mov byte [esp + 0x4a8], 9
call fcn.004f54b0
push fcn.0045c490
push 3
push 0x10
lea eax, [esp + 0x1a4]
push eax
mov byte [esp + 0x4b8], 8
call fcn.005bd4f9
push fcn.0045c490
push 3
push 0x10
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x4b8], 7
call fcn.005bd4f9
push fcn.004eeaf0
push 2
push 0x24
lea edx, [esp + 0x2a0]
push edx
mov byte [esp + 0x4b8], 6
call fcn.005bd4f9
push fcn.004eeaf0
push 2
push 0x24
lea eax, [esp + 0x2e8]
push eax
mov byte [esp + 0x4b8], 5
call fcn.005bd4f9
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x4a8], 4
call fcn.004eeaf0
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x4a8], 3
call fcn.004eeaf0
lea ecx, [esp + 0x268]
mov byte [esp + 0x4a8], 2
call fcn.00514eb0
lea ecx, [esp + 0x70]
mov byte [esp + 0x4a8], 1
call fcn.00582e50
lea ecx, [esp + 0x36c]
mov dword [esp + 0x4a8], 0xffffffff
call fcn.00589ec0
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.005bd2c6
mov esp, ebp
pop ebp
ret 8