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

Disassembly:
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x60]
xor eax, eax
xor esi, esi
test edi, edi
mov dword [esp + 0x10], eax
je 0x5bd9a4
mov ebx, dword [esp + 0x5c]
nop
lea esp, [esp]
mov ecx, dword [ebx + esi*4]
mov edx, ecx
and edx, 0x80000003
jns 0x5bd992
dec edx
or edx, 0xfffffffc
inc edx
je 0x5bd999
sub ecx, edx
add ecx, 4
add eax, ecx
inc esi
cmp esi, edi
jne 0x5bd980
mov dword [esp + 0x10], eax
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, eax
shl ecx, 4
mov edx, ecx
and edx, 0x3f
mov dword [esp + 0x44], eax
lea ebp, [eax + eax]
je 0x5bd9c8
lea ecx, [eax + 4]
shl ecx, 4
sub ecx, edx
mov edx, ebp
neg edx
lea esi, [ebp + ebp*2]
shl edx, 5
shl esi, 5
and edx, 0x3f
je 0x5bd9e0
sub esi, edx
add esi, 0x40
lea ebx, [ebp*4]
mov edx, ebx
and edx, 0x3f
jne 0x5bd9f4
mov dword [esp + 0x5c], ebx
jmp 0x5bda01
lea edi, [ebp*4 + 0x40]
sub edi, edx
mov dword [esp + 0x5c], edi
test edx, edx
jne 0x5bda0b
mov dword [esp + 0x14], ebx
jmp 0x5bda18
lea edi, [ebp*4 + 0x40]
sub edi, edx
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x64]
imul eax, edx
lea ebx, [eax*4]
mov edi, ebx
and edi, 0x3f
mov dword [esp + 0x48], eax
jne 0x5bda37
mov dword [esp + 0x18], ebx
jmp 0x5bda44
lea eax, [eax*4 + 0x40]
sub eax, edi
mov dword [esp + 0x18], eax
lea ebx, [edx*4]
mov eax, ebx
and eax, 0x3f
jne 0x5bda58
mov dword [esp + 0x1c], ebx
jmp 0x5bda65
lea edi, [edx*4 + 0x40]
sub edi, eax
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x5bda6f
mov dword [esp + 0x20], ebx
jmp 0x5bda7c
lea edi, [edx*4 + 0x40]
sub edi, eax
mov dword [esp + 0x20], edi
test eax, eax
jne 0x5bda86
mov dword [esp + 0x24], ebx
jmp 0x5bda93
lea edi, [edx*4 + 0x40]
sub edi, eax
mov dword [esp + 0x24], edi
test eax, eax
jne 0x5bda9d
mov dword [esp + 0x28], ebx
jmp 0x5bdaaa
lea edx, [edx*4 + 0x40]
sub edx, eax
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x68]
lea eax, [edi*4]
mov edx, eax
and edx, 0x3f
je 0x5bdac5
lea eax, [edi*4 + 0x40]
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, ecx
and eax, 0x8000003f
jns 0x5bdad7
dec eax
or eax, 0xffffffc0
inc eax
jne 0x5bdadf
mov dword [esp + 0x30], ecx
jmp 0x5bdaea
mov edx, ecx
sub edx, eax
add edx, 0x40
mov dword [esp + 0x30], edx
test eax, eax
jne 0x5bdaf4
mov dword [esp + 0x34], ecx
jmp 0x5bdaff
mov edx, ecx
sub edx, eax
add edx, 0x40
mov dword [esp + 0x34], edx
test eax, eax
jne 0x5bdb09
mov dword [esp + 0x38], ecx
jmp 0x5bdb14
mov edx, ecx
sub edx, eax
add edx, 0x40
mov dword [esp + 0x38], edx
test eax, eax
jne 0x5bdb1e
mov dword [esp + 0x3c], ecx
jmp 0x5bdb29
mov edx, ecx
sub edx, eax
add edx, 0x40
mov dword [esp + 0x3c], edx
test eax, eax
je 0x5bdb32
sub ecx, eax
add ecx, 0x40
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x3c]
lea edi, [eax + ecx]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
add edi, eax
mov eax, dword [esp + 0x28]
add edi, ebx
mov ebx, dword [esp + 0x24]
add edi, edx
mov edx, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [esp + 0x1c]
add edi, eax
mov eax, dword [esp + 0x18]
add edi, ebx
mov ebx, dword [esp + 0x14]
add edi, edx
mov edx, dword [esp + 0x5c]
add edi, ecx
add edi, eax
add edi, ebx
add edi, edx
mov edx, dword [esp + 0x58]
add edi, esi
push edi
push edx
call fcn.005c6b60
mov ebx, dword [esp + 0x54]
push str.JMblock
push esi
push edi
push eax
mov dword [ebx], eax
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], 0
call fcn.005bd920
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x64]
push str.pJMb2cr
push ecx
mov dword [esi], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x84]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x3c]
push str.JMb2cr
push ecx
mov dword [esi + 0x1c], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x98]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x54]
push str.JMcr2b
push ecx
mov dword [esi + 0x28], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0xac]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x6c]
add esp, 0x50
push str.JMb2i
push ecx
mov dword [esi + 0x34], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x70]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x34]
push str.pJMb2i
push ecx
mov dword [esi + 0x40], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x84]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x4c]
push str.JMbpb
push ecx
mov dword [esi + 0x10], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x98]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x64]
push str.JMpbpb
push ecx
mov dword [esi + 0x4c], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0xac]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x7c]
add esp, 0x50
push str.JMbpp
push ecx
mov dword [esi + 4], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x70]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
mov dword [esi + 0x58], eax
mov eax, dword [esp + 0x44]
push 0x6262fc
push eax
mov dword [esi + 0x78], edx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], ebp
mov ecx, dword [ebx]
push edi
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.005bd920
xor ecx, ecx
mov dword [esi + 0x7c], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x80], eax
mov eax, ebp
add esp, 0x28
and eax, 0x8000000f
mov dword [esi + 0x20], ecx
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x50], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0x5c], ecx
jns 0x5bdd08
dec eax
or eax, 0xfffffff0
inc eax
mov edx, ebp
je 0x5bdd11
sub edx, eax
add edx, 0x10
cmp eax, ecx
mov dword [esi + 0x24], edx
je 0x5bdd1d
sub ebp, eax
add ebp, 0x10
mov eax, dword [esp + 0x48]
mov edx, eax
and edx, 0x8000000f
mov dword [esi + 0x30], ebp
jns 0x5bdd33
dec edx
or edx, 0xfffffff0
inc edx
je 0x5bdd3a
sub eax, edx
add eax, 0x10
mov edx, dword [esp + 0x64]
mov dword [esi + 0x3c], eax
mov eax, edx
and eax, 0x8000000f
jns 0x5bdd4f
dec eax
or eax, 0xfffffff0
inc eax
mov ebp, edx
je 0x5bdd58
sub ebp, eax
add ebp, 0x10
cmp eax, ecx
mov dword [esi + 0x48], ebp
mov ebp, edx
je 0x5bdd66
sub ebp, eax
add ebp, 0x10
cmp eax, ecx
mov dword [esi + 0x18], ebp
mov ebp, edx
je 0x5bdd74
sub ebp, eax
add ebp, 0x10
cmp eax, ecx
mov dword [esi + 0x54], ebp
je 0x5bdd80
sub edx, eax
add edx, 0x10
mov eax, dword [esp + 0x68]
mov ecx, eax
and ecx, 0x8000000f
mov dword [esi + 0xc], edx
jns 0x5bdd96
dec ecx
or ecx, 0xfffffff0
inc ecx
je 0x5bdd9d
sub eax, ecx
add eax, 0x10
mov dword [esi + 0x60], eax
mov eax, dword [esp + 0x10]
mov ebp, eax
and ebp, 0x8000000f
jns 0x5bddb3
dec ebp
or ebp, 0xfffffff0
inc ebp
je 0x5bddba
sub eax, ebp
add eax, 0x10
mov ecx, dword [esp + 0x34]
push 0x6262f8
push ecx
mov dword [esi + 0x84], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x70]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x4c]
push str.lomask
push ecx
mov dword [esi + 0x88], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x84]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x64]
push str.himask
push ecx
mov dword [esi + 0xa0], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0x98]
push eax
call fcn.005bd920
mov ecx, dword [esp + 0x7c]
push str.invMdiag
push ecx
mov dword [esi + 0xac], eax
mov edx, dword [ebx]
push edi
push edx
lea eax, [esp + 0xac]
push eax
call fcn.005bd920
mov dword [esi + 0x94], eax
mov eax, dword [esp + 0x60]
add esp, 0x50
test ebp, ebp
mov dword [esi + 0x8c], eax
mov dword [esi + 0xa4], eax
mov dword [esi + 0xb0], eax
mov dword [esi + 0x98], eax
mov ecx, eax
je 0x5bde6b
sub ecx, ebp
add ecx, 0x10
test ebp, ebp
mov dword [esi + 0x90], ecx
mov ecx, eax
je 0x5bde7c
sub ecx, ebp
add ecx, 0x10
test ebp, ebp
mov dword [esi + 0xa8], ecx
mov ecx, eax
je 0x5bde8d
sub ecx, ebp
add ecx, 0x10
test ebp, ebp
mov dword [esi + 0xb4], ecx
je 0x5bde9c
sub eax, ebp
add eax, 0x10
pop edi
mov dword [esi + 0x9c], eax
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x1c