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

Disassembly:
jmp 0x5bc1c0
push 0xffffffffffffffff
push 0x6c09eb
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov eax, dword [0x774458]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
xor ebp, ebp
xor edx, edx
nop
mov eax, dword [esp + 0x74]
movzx eax, word [eax + edx*2]
movzx ecx, ah
and ecx, 0xf8
mov di, cx
mov ecx, eax
and eax, 0x1f
add eax, eax
add eax, eax
shr ecx, 3
add eax, eax
and ecx, 0xfc
movsx eax, ax
movsx ecx, cx
add eax, ecx
movsx ecx, di
add eax, ecx
cmp edx, ebx
je 0x5bc22d
cmp eax, ebp
jge 0x5bc232
mov dword [esi + 0x18], edx
mov ebp, eax
add edx, 1
cmp edx, 0x100
jb 0x5bc1f0
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x78]
mov edx, dword [ecx]
mov eax, dword [edi]
cmp edx, eax
jle 0x5bc253
mov dword [esp + 0x14], edx
jmp 0x5bc259
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esi + 4], edx
mov eax, dword [ecx + 4]
mov ecx, dword [edi + 4]
cmp eax, ecx
jle 0x5bc26c
mov dword [esp + 0x20], eax
jmp 0x5bc272
mov dword [esp + 0x20], ecx
mov eax, ecx
cmp edx, ebx
mov dword [esi + 8], eax
jl 0x5bc760
cmp eax, ebx
jl 0x5bc760
mov eax, dword [esi]
push eax
call fcn.00651684
mov eax, dword [esi + 0x10]
push eax
call fcn.00651684
mov eax, dword [esi + 0x14]
push eax
call fcn.00651684
push 0x80200
mov dword [esi], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0xc], ebx
call fcn.0065014a
push 0x804
mov dword [esi + 0x1c], eax
call fcn.0065014a
add esp, 0x14
mov dword [esp + 0x48], eax
cmp eax, ebx
mov dword [esp + 0x5c], ebx
je 0x5bc2f2
push 0x4078ba
push 0x408bac
push 0x100
lea edi, [eax + 4]
push 8
push edi
mov dword [eax], 0x100
call fcn.00651cea
jmp 0x5bc2f4
xor edi, edi
mov dword [esp + 0x5c], 0xffffffff
mov dword [esi + 0x20], edi
mov dword [esi + 0xc], ebx
xor ebp, ebp
mov edi, dword [esi + 0x20]
mov edx, dword [edi + ebx + 4]
add edi, ebx
push edx
call fcn.00651684
push 0x2001
mov dword [edi], 0x2001
call fcn.0065014a
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + ebx]
mov edx, dword [eax + ebx + 4]
add eax, ebx
push ecx
push 0
push edx
call fcn.00651c70
mov eax, dword [esi + 0x1c]
mov word [eax + ebp + 0x800], 0
add ebx, 8
add esp, 0x14
add ebp, 0x802
cmp ebx, 0x800
jb 0x5bc304
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x78]
mov ecx, dword [edi]
mov eax, dword [ebp]
xor ebx, ebx
cmp ecx, eax
setl bl
mov edx, eax
sub edx, ecx
sar edx, 1
mov dword [esp + 0x1c], edx
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x5bc388
mov dword [esp + 0x28], ecx
jmp 0x5bc392
neg edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
mov ebp, dword [ebp + 4]
xor ebx, ebx
sub ecx, edx
cmp eax, ebp
setl bl
mov edi, ebp
sub edi, eax
sar edi, 1
mov dword [esp + 0x34], ecx
test ebx, ebx
mov dword [esp + 0x68], ebx
je 0x5bc3c3
mov ebx, eax
mov dword [esp + 0x78], ebx
jmp 0x5bc3cb
mov dword [esp + 0x78], ebp
neg edi
mov ebx, ebp
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x64]
sub eax, ebx
sub eax, edi
test edi, edi
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], eax
je 0x5bc42e
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
push ecx
push 0
push 0
push edx
push ebx
push ebp
mov ecx, esi
sub edi, 1
call fcn.0040be15
cmp dword [esp + 0x68], 0
je 0x5bc416
add ebx, dword [esp + 0x7c]
jmp 0x5bc41e
mov eax, dword [esp + 0x6c]
lea ebp, [ebp + eax*2]
test edi, edi
jne 0x5bc3ef
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x78], 0
je 0x5bc473
mov edi, dword [esp + 0x6c]
add edi, edi
jmp 0x5bc448
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
sub dword [esp + 0x78], 1
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
mov ecx, esi
call fcn.0040be15
add ebx, dword [esp + 0x7c]
add ebp, edi
cmp dword [esp + 0x78], 0
jne 0x5bc440
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5bc4be
jmp 0x5bc484
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x68]
push edx
push 0
sub eax, 1
push 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
push eax
push ebx
push ebp
mov ecx, esi
call fcn.0040be15
cmp dword [esp + 0x68], 0
je 0x5bc4af
add ebx, dword [esp + 0x7c]
jmp 0x5bc4b7
mov ecx, dword [esp + 0x6c]
lea ebp, [ebp + ecx*2]
cmp dword [esp + 0x18], 0
jne 0x5bc480
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0065014a
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x18]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0065014a
mov dword [esi], eax
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0065014a
mov ecx, dword [esi + 0x10]
xor edi, edi
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x80]
add esp, 0xc
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], 0x40
xor ebx, ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x78], eax
mov edx, dword [esi + 0x1c]
lea eax, [edx + edi + 0x800]
movzx edx, word [eax]
mov word [eax], bx
mov eax, dword [esp + 0x78]
movzx eax, word [eax]
movzx ebp, dx
movzx edx, ah
and edx, 0xf8
mov word [esp + 0x4c], dx
mov edx, eax
and eax, 0x1f
add eax, eax
shr edx, 3
add eax, eax
add ebx, ebp
and edx, 0xfc
add eax, eax
test ebp, ebp
mov dword [esp + 0x48], ebx
mov word [esp + 0x4e], dx
mov word [esp + 0x50], ax
jbe 0x5bc636
movsx ebx, word [esp + 0x4c]
movsx edx, dx
movsx eax, ax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x74], ebp
mov edx, dword [esi + 0x1c]
movzx eax, word [edi + edx]
movzx ebx, byte [esp + 0x4c]
mov byte [ecx], bl
movzx ebx, byte [esp + 0x4e]
movzx edx, ah
and edx, 0xf8
mov byte [ecx + 1], bl
movzx ebx, byte [esp + 0x50]
mov bp, dx
mov edx, eax
and eax, 0x1f
mov byte [ecx + 2], bl
shr edx, 3
add eax, eax
movsx ebx, bp
sub ebx, dword [esp + 0x18]
and edx, 0xfc
add eax, eax
movsx edx, dx
sub edx, dword [esp + 0x40]
add eax, eax
mov dword [esp + 0x3c], ebx
movsx eax, ax
fild dword [esp + 0x3c]
sub eax, dword [esp + 0x44]
mov dword [esp + 0x3c], edx
fstp dword [ecx + 4]
add ecx, 0x10
add edi, 2
sub dword [esp + 0x74], 1
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
fstp dword [ecx - 8]
fild dword [esp + 0x3c]
fstp dword [ecx - 4]
jne 0x5bc5a9
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
add dword [esp + 0x78], 2
add edi, 0x802
cmp edi, 0x80200
mov dword [esp + 0x20], edi
jb 0x5bc53a
cmp dword [esp + 0x24], 0
mov edi, dword [esi]
mov ebp, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
je 0x5bc6a3
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
sub dword [esp + 0x24], 1
push ecx
push 0
push 0
push edx
push ebx
push ebp
push edi
mov ecx, esi
call fcn.004047a5
cmp dword [esp + 0x68], 0
je 0x5bc68c
add ebx, dword [esp + 0x7c]
jmp 0x5bc694
mov eax, dword [esp + 0x6c]
lea ebp, [ebp + eax*2]
mov eax, dword [esp + 0x14]
add eax, eax
add edi, eax
cmp dword [esp + 0x24], 0
jne 0x5bc662
cmp dword [esp + 0x2c], 0
je 0x5bc6e8
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
sub dword [esp + 0x2c], 1
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
push ebx
push ebp
push edi
mov ecx, esi
call fcn.004047a5
mov eax, dword [esp + 0x6c]
add ebx, dword [esp + 0x7c]
add eax, eax
add ebp, eax
mov eax, dword [esp + 0x14]
add eax, eax
add edi, eax
cmp dword [esp + 0x2c], 0
jne 0x5bc6aa
cmp dword [esp + 0x30], 0
je 0x5bc730
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x14]
sub dword [esp + 0x30], 1
push edx
push 0
push 0
push eax
push ebx
push ebp
push edi
mov ecx, esi
call fcn.004047a5
cmp dword [esp + 0x68], 0
je 0x5bc719
add ebx, dword [esp + 0x7c]
jmp 0x5bc721
mov ecx, dword [esp + 0x6c]
lea ebp, [ebp + ecx*2]
mov eax, dword [esp + 0x14]
add eax, eax
add edi, eax
cmp dword [esp + 0x30], 0
jne 0x5bc6ef
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5bc754
mov edx, dword [eax - 4]
lea edi, [eax - 4]
push 0x4078ba
push edx
push 8
push eax
call fcn.00651c04
push edi
call fcn.00651684
add esp, 4
mov eax, dword [esi + 0x1c]
push eax
call fcn.00651684
add esp, 4
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret 0x1c