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

Disassembly:
sub esp, 0x74
mov ecx, dword [eax + 8]
mov eax, dword [edx + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x14]
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 8]
mov ecx, dword [esi + 8]
push edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x58], eax
mov al, byte [esi + 0xc]
add edi, 3
mov dword [esp + 0x64], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x10]
mov byte [esp + 0x11], al
mov eax, dword [esi + 0x18]
sar edi, 2
mov ebx, 0
mov dword [esp + 0x7c], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x3c], ebx
je 0x1000bdae
fld dword [esp + 0x8c]
lea eax, [edi - 1]
cmp ebx, eax
jae 0x1000b8bc
mov dword [esp + 0x34], 4
jmp 0x1000b8d0
lea ecx, [eax*4]
mov eax, dword [esp + 0x94]
sub eax, ecx
mov dword [esp + 0x34], eax
cmp dword [esp + 0x90], 0
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], 0
jbe 0x1000bd9d
mov esi, 7
sub esi, ebx
mov ebx, dword [esp + 0x44]
add esi, esi
add esi, esi
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x64]
lea edi, [ebx + 4]
sub esi, ebx
mov ebx, dword [esp + 0x40]
sub ebx, dword [esp + 0x44]
mov dword [esp + 0x30], edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x60], ebx
jmp 0x1000b92d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x60]
mov esi, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
mov eax, dword [edi + ebx + 4]
mov ebx, esi
shr ebx, cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], eax
and ebx, 0xf
cmp ebx, dword [ecx*4 + 0x1009b600]
mov dword [esp + 0x6c], ebx
je 0x1000bd6f
mov ebx, dword [esp + 0x48]
or ebx, eax
or ebx, esi
mov esi, dword [esp + 0x3c]
cmp esi, 7
mov dword [esp + 0x28], ebx
je 0x1000b98a
lea eax, [esi*4]
mov ecx, 0x1b
sub ecx, eax
mov eax, ebx
shr eax, cl
test al, 0x3f
jmp 0x1000b98d
test bl, 0x1f
je 0x1000bd6f
add esi, esi
xor eax, eax
add esi, esi
cmp dword [esp + 0x34], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x5c], eax
jbe 0x1000bd64
mov ecx, dword [esp + 0x6c]
cmp byte [eax + ecx*4 + 0x1009b618], 0
jne 0x1000bd48
mov eax, dword [esi*4 + 0x1009b500]
test ebx, eax
mov dword [esp + 0x74], eax
je 0x1000bd48
mov ecx, dword [esi*4 + 0x1009b580]
mov ebx, eax
and ebx, dword [esp + 0x48]
mov edi, eax
and edi, dword [esp + 0x2c]
and eax, dword [esp + 0x4c]
shr ebx, cl
shr edi, cl
shr eax, cl
add ebx, ebx
add ebx, ebx
add ebx, ebx
or ebx, edi
add ebx, ebx
add ebx, ebx
add ebx, ebx
or ebx, eax
cmp esi, 0x1f
jne 0x1000ba04
add ebx, ebx
mov ecx, dword [esp + 0x54]
mov edi, dword [ecx]
mov eax, dword [esp + 0x98]
mov eax, dword [eax + ebx*4]
mov esi, dword [ecx + 4]
movzx ecx, byte [edi + eax]
add edi, eax
add esi, eax
mov eax, dword [ecx*4 + 0x10089b00]
mov ebp, eax
mov ecx, edx
shr ebp, 0x10
shr ecx, 0x10
cmp ecx, ebp
jb 0x1000ba8f
sub dword [esp + 0x14], ebp
mov ecx, eax
and ecx, 0xffff0000
sub edx, ecx
mov ecx, dword [esp + 0x14]
test ecx, 0x8000
mov dword [esp + 0x1c], edx
je 0x1000ba63
cmp byte [esi], 0
mov ebp, dword [esp + 0x20]
setne byte [esp + 0x12]
jmp 0x1000bb3b
cmp ecx, ebp
jb 0x1000ba74
cmp byte [esi], 0
setne byte [esp + 0x12]
shr eax, 8
jmp 0x1000bac7
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
and al, 0x7f
jmp 0x1000bac3
lea ecx, [ebp + ebp]
cmp dword [esp + 0x14], ecx
jae 0x1000baa6
cmp byte [esi], 0
setne byte [esp + 0x12]
shr eax, 8
jmp 0x1000babf
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
and al, 0x7f
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
mov byte [edi], al
cmp dword [esp + 0x18], 0
jne 0x1000bb1b
cmp ebp, ecx
je 0x1000bb0d
mov al, byte [ebp]
add ebp, 1
cmp byte [esp + 0x11], 0xff
mov byte [esp + 0x11], al
je 0x1000baf7
movzx eax, al
shl eax, 8
add edx, eax
jmp 0x1000bb13
cmp al, 0x8f
ja 0x1000bb0d
movzx eax, al
shl eax, 9
add edx, eax
mov dword [esp + 0x18], 7
jmp 0x1000bb1b
add edx, 0xff00
mov dword [esp + 0x18], 8
mov eax, dword [esp + 0x14]
sub dword [esp + 0x18], 1
add eax, eax
add edx, edx
test eax, 0x8000
mov dword [esp + 0x14], eax
je 0x1000bad1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov ecx, esi
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x70]
or dword [ecx + edi], eax
cmp byte [esp + 0x12], 0
mov dword [esp + 0x78], eax
je 0x1000bd44
mov edx, dword [edi + 4]
mov eax, dword [edi - 4]
mov ecx, dword [edi]
mov ebp, dword [esp + 0x74]
mov edi, edx
or edi, ecx
or edi, eax
test ebp, edi
je 0x1000bb89
push esi
push ebx
push ecx
lea ebx, [esp + 0x5c]
call fcn.1000b7b0
add esp, 0xc
jmp 0x1000bb93
and ebx, 0xaa
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x50]
mov eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x54]
mov edi, dword [edx]
mov esi, dword [edx + 4]
mov edx, dword [esp + 0x1c]
mov cl, al
shr eax, 1
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x10089b00]
mov ebp, eax
mov ebx, edx
shr ebp, 0x10
shr ebx, 0x10
and cl, 1
cmp ebx, ebp
jb 0x1000bc36
sub dword [esp + 0x14], ebp
mov ebx, eax
and ebx, 0xffff0000
sub edx, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
mov dword [esp + 0x1c], edx
je 0x1000bbfb
mov dl, byte [esi]
xor dl, cl
setne bl
jmp 0x1000bcd8
cmp ebx, ebp
mov bl, byte [esi]
jb 0x1000bc0f
mov esi, dword [esp + 0x14]
xor bl, cl
setne bl
shr eax, 8
jmp 0x1000bc69
mov byte [esp + 0x12], bl
xor bl, cl
xor bl, 1
setne byte [esp + 0x13]
mov bl, byte [esp + 0x13]
mov cl, al
and cl, 1
xor cl, byte [esp + 0x12]
shr eax, 1
mov byte [esi], cl
mov esi, dword [esp + 0x14]
and al, 0x7f
jmp 0x1000bc69
lea edx, [ebp + ebp]
cmp dword [esp + 0x14], edx
mov dl, byte [esi]
jae 0x1000bc4c
xor dl, cl
setne bl
shr eax, 8
jmp 0x1000bc63
mov bl, dl
xor bl, cl
xor bl, 1
setne bl
mov cl, al
and cl, 1
xor cl, dl
shr eax, 1
mov byte [esi], cl
and al, 0x7f
mov edx, dword [esp + 0x1c]
mov esi, ebp
mov byte [edi], al
cmp dword [esp + 0x18], 0
jne 0x1000bcbf
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x58]
je 0x1000bcb1
mov cl, byte [eax]
add eax, 1
cmp byte [esp + 0x11], 0xff
mov dword [esp + 0x20], eax
mov byte [esp + 0x11], cl
je 0x1000bc9a
movzx eax, cl
shl eax, 8
add edx, eax
jmp 0x1000bcb7
cmp cl, 0x8f
ja 0x1000bcb1
movzx ecx, cl
shl ecx, 9
add edx, ecx
mov dword [esp + 0x18], 7
jmp 0x1000bcbf
add edx, 0xff00
mov dword [esp + 0x18], 8
sub dword [esp + 0x18], 1
add esi, esi
add edx, edx
test esi, 0x8000
je 0x1000bc6b
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
or eax, ecx
or dword [esp + 0x28], eax
test bl, bl
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
je 0x1000bd24
mov edx, esi
fld st(0)
imul edx, dword [esp + 0xa4]
fchs
mov eax, edi
or dword [eax], ecx
add edx, dword [esp + 0x38]
mov eax, dword [esp + 0xa0]
fstp dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
jmp 0x1000bd48
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0xa4]
add ecx, dword [esp + 0x38]
mov edx, dword [esp + 0xa0]
fst dword [edx + ecx*4]
mov edx, dword [esp + 0x1c]
jmp 0x1000bd48
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x24], esi
jb 0x1000b9ab
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x60]
mov dword [ecx + edi], eax
mov eax, dword [esp + 0x38]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edi
jb 0x1000b921
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0xa8]
add ebx, 1
cmp ebx, edi
mov dword [esp + 0x3c], ebx
jb 0x1000b8ab
fstp st(0)
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x11]
mov dword [esi + 8], eax
mov dword [esi + 4], edx
mov edx, dword [esp + 0x18]
mov byte [esi + 0xc], cl
mov ecx, dword [esi + 0x14]
mov eax, ebp
sub eax, dword [esp + 0x80]
mov dword [esi + 0x10], edx
pop edi
mov dword [ecx + 8], eax
mov edx, dword [esi + 0x14]
pop esi
mov dword [edx], ebp
pop ebp
pop ebx
add esp, 0x74
ret