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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xe4
mov ebx, dword [esp + 0xfc]
lea edi, [esp + 0x80]
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x48], edi
test ebx, ebx
jle 0xb6fe20
mov edi, dword [esp + 0x48]
xor ecx, ecx
xor eax, eax
nop
movsx edx, word [esi + eax*2]
add ecx, edx
shl edx, 0xc
mov dword [edi + eax*4], edx
add eax, 1
cmp ebx, eax
jne 0xb6fdf0
cmp ecx, 0xfff
jle 0xb6fe20
xor eax, eax
add esp, 0xe4
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebx - 1]
test eax, eax
mov dword [esp + 0x4c], eax
jle 0xb703d2
mov eax, dword [esp + 0x4c]
lea ecx, [eax*4]
mov eax, dword [esp + ecx + 0x80]
lea edx, [eax + 0xffef9e]
cmp edx, 0x1ffdf3c
ja 0xb6fe0b
shl eax, 7
mov esi, 0x40000000
neg eax
mov ebx, eax
mov dword [esp + 8], eax
imul eax
sar ebx, 0x1f
mov dword [esp + 0xc], ebx
sub esi, edx
mov eax, esi
cdq
shld edx, eax, 0x1e
mov eax, edx
shl eax, 2
cmp eax, 0x1a36d
mov dword [esp + 0x64], eax
jle 0xb6fe0b
lea eax, [esp + 0x80]
mov dword [esp + 0x48], eax
lea eax, [ecx + eax - 4]
mov dword [esp + 0x60], eax
test esi, esi
je 0xb70310
mov edx, esi
sar edx, 0x1f
mov eax, edx
xor eax, esi
sub eax, edx
bsr eax, eax
xor eax, 0x1f
mov ebx, eax
mov dword [esp + 0x38], eax
mov eax, 0x20
sub eax, ebx
lea ecx, [ebx - 1]
xor ebx, ebx
mov dword [esp + 0x20], eax
shl esi, cl
mov eax, 0x1fffffff
mov ecx, esi
cdq
movzx esi, si
sar ecx, 0x10
idiv ecx
movsx edi, ax
imul esi, edi
imul ecx, edi
sar esi, 0x10
add ecx, esi
lea edx, [ecx*8]
neg edx
movzx esi, dx
mov ecx, edx
imul esi, edi
sar ecx, 0x10
imul ecx, edi
sar esi, 0x10
add esi, ecx
mov ecx, eax
sar eax, 0xf
add eax, 1
shl ecx, 0x10
sar eax, 1
add esi, ecx
imul edx, eax
add edx, esi
test ebx, ebx
jle 0xb70395
cmp ebx, 0x20
mov dword [esp + 0x3c], 0
je 0xb6ff30
mov ecx, ebx
sar edx, cl
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
mov ebp, eax
mov edi, eax
mov dword [esp + 0x10], eax
sar ebp, 0x1f
mov dword [esp + 0x58], edi
mov edx, ebp
mov ecx, ebp
mov dword [esp + 0x14], ebp
shld edx, eax, 0x1f
shl eax, 0x1f
mov dword [esp + 0x5c], ebp
mov ebx, eax
mov esi, edx
mov eax, 0x80000000
sub ebx, edi
sbb esi, ebp
shl ecx, 0x1f
sub ecx, dword [esp + 0x3c]
mul dword [esp + 0x3c]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
shrd ebx, esi, 1
sar esi, 1
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x44], edx
add dword [esp + 0x44], ecx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
shrd eax, edx, 1
sar edx, 1
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x48]
lea eax, [eax + eax + 2]
mov dword [esp], edx
and eax, 0xfffffffc
add eax, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
jmp 0xb7012f
mov esi, eax
mov edi, edx
add esi, 1
adc edi, 0
shrd esi, edi, 1
cmp ebx, esi
mov ecx, esi
js 0xb70250
add ecx, 0x80000000
mov eax, 0x80000000
mov edx, 0xffffffff
test ecx, ebx
js 0xb70004
mov eax, ebx
sub eax, esi
cdq
mov esi, dword [esp + 0x10]
mov edi, 0x1f
sub edi, dword [esp + 0x38]
mov ecx, esi
imul ecx, edx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, edi
imul ecx, eax
mov edx, ecx
mov ecx, dword [esp + 0x1c]
add ecx, edx
mul esi
add edx, ecx
movzx ecx, byte [esp + 0x18]
shrd eax, edx, cl
sar edx, cl
test cl, 0x20
je 0xb70047
mov eax, edx
sar edx, 0x1f
add eax, 1
adc edx, 0
shrd eax, edx, 1
sar edx, 1
mov esi, eax
mov edi, edx
add esi, 0x80000000
adc edi, 0
cmp edi, 0
ja 0xb6fe0b
mov edi, dword [esp]
mov esi, dword [esp + 8]
mov dword [edi], eax
mov edi, dword [esp + 0xc]
mov eax, ebx
cdq
mov ecx, edx
mov eax, edi
imul ecx, esi
imul eax, ebx
add ecx, eax
mov eax, ebx
mul esi
add edx, ecx
shrd eax, edx, 0x1e
sar edx, 0x1e
mov esi, eax
mov edi, edx
add esi, 1
adc edi, 0
shrd esi, edi, 1
cmp ebp, esi
mov ecx, esi
js 0xb70270
add ecx, 0x80000000
mov eax, 0x80000000
mov edx, 0xffffffff
test ecx, ebp
js 0xb700c3
mov eax, ebp
sub eax, esi
cdq
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, ebx
mov edi, esi
imul ecx, edx
imul edi, eax
mul ebx
add ecx, edi
add edx, ecx
movzx ecx, byte [esp + 0x18]
shrd eax, edx, cl
sar edx, cl
test cl, 0x20
je 0xb700ef
mov eax, edx
sar edx, 0x1f
add eax, 1
adc edx, 0
shrd eax, edx, 1
sar edx, 1
mov ecx, eax
mov ebx, edx
add ecx, 0x80000000
adc ebx, 0
cmp ebx, 0
ja 0xb6fe0b
mov edi, dword [esp + 4]
add dword [esp], 4
mov dword [edi], eax
sub edi, 4
mov eax, dword [esp]
cmp eax, dword [esp + 0x24]
mov dword [esp + 4], edi
je 0xb7032c
mov eax, dword [esp]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov ebx, dword [eax]
mov eax, dword [esp + 4]
mov ebp, dword [eax]
mov eax, ebp
cdq
mov eax, edi
mov ecx, edx
imul eax, ebp
imul ecx, esi
add ecx, eax
mov eax, esi
mul ebp
add edx, ecx
shrd eax, edx, 0x1e
sar edx, 0x1e
cmp dword [esp + 0x20], 1
jne 0xb6ffd3
add eax, 1
adc edx, 0
shrd eax, edx, 1
cmp ebx, eax
mov ecx, eax
js 0xb70290
add ecx, 0x80000000
test ecx, ebx
js 0xb702d0
mov esi, ebx
sub esi, eax
mov eax, esi
imul dword [esp + 0x3c]
mov esi, eax
shrd eax, edx, 1
sar edx, 1
mov edi, esi
mov dword [esp + 0x2c], 0
and edi, 1
mov dword [esp + 0x28], edi
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov esi, eax
add esi, 0x80000000
mov edi, edx
adc edi, 0
cmp edi, 0
ja 0xb6fe0b
mov edi, dword [esp]
mov esi, dword [esp + 8]
mov dword [edi], eax
mov edi, dword [esp + 0xc]
mov eax, ebx
cdq
mov ecx, edx
mov eax, edi
imul eax, ebx
imul ecx, esi
add ecx, eax
mov eax, ebx
mul esi
add edx, ecx
shrd eax, edx, 0x1e
sar edx, 0x1e
mov ecx, eax
mov ebx, edx
add ecx, 1
adc ebx, 0
shrd ecx, ebx, 1
cmp ebp, ecx
mov eax, ecx
js 0xb702b0
add eax, 0x80000000
test eax, ebp
js 0xb702e1
sub ebp, ecx
mov eax, ebp
imul dword [esp + 0x3c]
mov ecx, eax
shrd eax, edx, 1
sar edx, 1
mov ebx, ecx
mov dword [esp + 0x34], 0
and ebx, 1
mov dword [esp + 0x30], ebx
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
jmp 0xb700fb
lea eax, [ebx - 0x80000000]
xor edx, edx
mov dword [esp + 0x18], eax
test dword [esp + 0x18], esi
mov eax, 0x7fffffff
jns 0xb6ffff
jmp 0xb70004
lea ebx, [ebp - 0x80000000]
xor edx, edx
mov eax, 0x7fffffff
test ebx, ecx
jns 0xb700be
jmp 0xb700c3
lea esi, [ebx - 0x80000000]
test esi, eax
jns 0xb7018b
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
jmp 0xb7019d
lea edx, [ebp - 0x80000000]
test edx, eax
jns 0xb7021a
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
jmp 0xb7022a
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
jmp 0xb7019d
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
neg ecx
adc ebx, 0
neg ebx
shld ebx, ecx, 0x1f
shl ecx, 0x1f
mov edx, ebx
mov eax, ecx
shrd eax, edx, 1
sar edx, 1
jmp 0xb7022a
xor ebx, ebx
mov dword [esp + 0x20], 0
mov ecx, 0x1f
mov dword [esp + 0x38], 0x20
jmp 0xb6fec3
sub dword [esp + 0x4c], 1
je 0xb703da
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx]
lea edx, [eax + 0xffef9e]
cmp edx, 0x1ffdf3c
ja 0xb6fe0b
shl eax, 7
mov esi, 0x40000000
neg eax
mov edi, eax
mov dword [esp + 8], eax
imul eax
mov eax, dword [esp + 0x64]
sar edi, 0x1f
mov dword [esp + 0xc], edi
sub esi, edx
imul esi
mov eax, edx
shl eax, 2
mov edi, eax
mov dword [esp + 0x64], eax
mov eax, ebx
sub eax, 4
cmp edi, 0x1a36d
mov dword [esp + 0x60], eax
jg 0xb6fe94
jmp 0xb6fe0b
neg ebx
mov eax, 0x7fffffff
mov ecx, ebx
mov ebx, 0x80000000
sar ebx, cl
sar eax, cl
cmp ebx, eax
jle 0xb703bc
cmp edx, ebx
jle 0xb703ca
mov edx, ebx
shl edx, cl
mov dword [esp + 0x3c], edx
jmp 0xb6ff30
cmp edx, eax
jle 0xb703c4
mov edx, eax
jmp 0xb703b1
cmp edx, ebx
jge 0xb703b1
jmp 0xb703af
cmp edx, eax
jge 0xb703b1
mov edx, eax
jmp 0xb703b1
mov dword [esp + 0x64], 0x40000000
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + eax*4 + 0x80]
add eax, 0xffef9e
cmp eax, 0x1ffdf3c
ja 0xb6fe0b
mov eax, dword [esp + 0x80]
shl eax, 7
neg eax
imul eax
mov eax, 0x40000000
sub eax, edx
imul dword [esp + 0x64]
mov eax, edx
shl eax, 2
cmp eax, 0x1a36d
jg 0xb6fe0d
jmp 0xb6fe0b