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

Disassembly:
mov eax, 0x1021fce0
call fcn.10210210
sub esp, 0x60
inc dword [esp + 0x78]
inc dword [esp + 0x7c]
push ebx
push ebp
push esi
mov esi, ecx
movss dword [esp + 0x48], xmm2
push edi
lea ecx, [esp + 0x68]
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
push 0xec
call fcn.101dbffe
mov edx, eax
pop ecx
mov dword [esp + 0x64], edx
xor ebp, ebp
mov dword [esp + 0x78], ebp
test edx, edx
je 0x100f974a
mov eax, dword [esp + 0x68]
push ecx
push ecx
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 4], eax
mov ecx, edx
call fcn.100034d0
mov ebx, eax
mov dword [esp + 0x50], ebx
jmp 0x100f9750
mov ebx, ebp
mov dword [esp + 0x50], ebp
mov ecx, dword [esp + 0x84]
mov edx, ecx
mov eax, ecx
mov byte [esp + 0x12], cl
shr ecx, 8
shr eax, 0x10
shr edx, 0x18
mov byte [esp + 0x11], cl
mov ecx, 0xff
mov byte [esp + 0x10], al
mov eax, edx
sub ecx, eax
mov byte [esp + 0x13], dl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], ebp
xor eax, eax
inc eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], ebp
lea edx, [esp + 0x14]
mov byte [esp + 0x78], 2
mov ecx, esi
call fcn.100f969d
lea edx, [esp + 0x1c]
mov ecx, ebx
call fcn.100f969d
mov ebp, dword [esp + 0x8c]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x88]
sub eax, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x9c], eax
mov eax, ebp
imul eax, ebp
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
add esi, ebx
add dword [esp + 0x94], ebp
sub edi, ebx
mov dword [esp + 0x90], esi
imul eax, ebx
mov dword [esp + 0x98], edi
imul eax, ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10271140]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [esp + 0x4c]
call fcn.101e2c30
test eax, eax
push 1
pop ecx
cmove eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
dec eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
dec eax
cmp esi, edi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
jg 0x100f9ef2
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
cmp ecx, edx
jg 0x100f9ef2
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
js 0x100f9a2a
mov edx, dword [edi + eax*4]
xor ebx, ebx
mov dword [esp + 0x60], edx
sub eax, ebp
mov edx, dword [esp + 0x24]
inc eax
dec edx
add edx, ebp
test eax, eax
cmovg ebx, eax
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x18]
cmp edx, ebx
cmovl ebx, edx
xor edx, edx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x38], edx
cmp dword [esp + 0x84], edx
jl 0x100f9a09
mov edi, dword [esp + 0x24]
and dword [esp + 0x34], 0
mov eax, edx
sub eax, ebx
xor esi, esi
inc eax
dec edx
add edx, ebx
test eax, eax
cmovg esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x84]
cmp edx, esi
mov dword [esp + 0x30], eax
cmovl esi, edx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x14]
cmp eax, dword [esp + 0x44]
jg 0x100f99ae
mov ecx, dword [esp + 0x30]
sub eax, edi
mov dword [esp + 0x3c], eax
mov edx, dword [esi + ecx*4]
mov dword [esp + 0x20], edx
mov edx, edi
sub edx, ecx
cmp ecx, edi
cmovl eax, edx
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x40]
jg 0x100f9992
mov esi, dword [esp + 0x38]
mov edx, eax
mov ebp, dword [esp + 0x58]
lea eax, [eax*4 + 3]
mov ecx, dword [esp + 0x40]
sub edx, esi
add eax, dword [esp + 0x20]
mov edi, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x20], eax
mov edx, esi
mov eax, edi
sub edx, ebp
cmp ebp, esi
cmovl eax, edx
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x20], 4
movzx eax, byte [eax]
imul edx, eax
imul edx, dword [esp + 0x5c]
add dword [esp + 0x34], edx
inc ebp
inc edi
cmp ebp, ecx
jle 0x100f9952
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
inc ecx
inc eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
cmp ecx, dword [esp + 0x44]
jle 0x100f9907
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
xor edx, edx
div dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
mov edx, eax
mov dword [esp + 0x40], ecx
mov eax, 0xff
cmp edx, eax
cmova edx, eax
imul edx, dword [esp + 0x2c]
shr edx, 8
sub al, dl
mov edx, dword [esp + 0x38]
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x40]
mov dword [ebx + edx*4], eax
inc edx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jle 0x100f98bf
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x94]
jle 0x100f9878
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x18]
jmp 0x100f9bce
mov eax, dword [edi + edx*4]
xor ecx, ecx
mov dword [esp + 0x64], eax
mov eax, edx
sub eax, ebp
dec edx
inc eax
add edx, ebp
test eax, eax
cmovg ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
cmp edx, eax
mov ecx, eax
cmovl ecx, edx
xor edx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
cmp dword [esp + 0x84], edx
jl 0x100f9bc5
mov edi, dword [esp + 0x20]
and dword [esp + 0x30], 0
mov eax, edx
sub eax, ebx
xor esi, esi
inc eax
dec edx
add edx, ebx
test eax, eax
cmovg esi, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x84]
cmp edx, esi
mov dword [esp + 0x34], eax
cmovl esi, edx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x14]
cmp eax, dword [esp + 0x3c]
jg 0x100f9b66
mov ecx, dword [esp + 0x34]
sub eax, edi
mov dword [esp + 0x40], eax
mov edx, dword [esi + ecx*4]
mov dword [esp + 0x58], edx
mov edx, edi
sub edx, ecx
cmp ecx, edi
cmovl eax, edx
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x44]
jg 0x100f9b4a
mov esi, dword [esp + 0x24]
mov edx, eax
mov ebp, dword [esp + 0x4c]
lea eax, [eax*4 + 3]
mov ecx, dword [esp + 0x44]
sub edx, esi
add eax, dword [esp + 0x58]
mov edi, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x38], eax
mov edx, esi
mov eax, edi
sub edx, ebp
cmp ebp, esi
cmovl eax, edx
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x38]
add dword [esp + 0x38], 4
movzx eax, byte [eax]
imul edx, eax
imul edx, dword [esp + 0x48]
add dword [esp + 0x30], edx
inc ebp
inc edi
cmp ebp, ecx
jle 0x100f9b0a
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
inc ecx
inc eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x3c]
jle 0x100f9abf
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
xor edx, edx
div dword [esp + 0x28]
mov ebx, dword [esp + 0x64]
mov edx, eax
mov dword [esp + 0x44], ecx
mov eax, 0xff
cmp edx, eax
cmova edx, eax
imul edx, dword [esp + 0x2c]
shr edx, 8
sub al, dl
mov edx, dword [esp + 0x24]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x44]
mov dword [ebx + edx*4], eax
inc edx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0x84]
jle 0x100f9a77
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x20], edx
cmp edx, eax
jle 0x100f9a33
xor edx, edx
mov dword [esp + 0x20], edx
test eax, eax
js 0x100fa0ad
mov eax, dword [edi + edx*4]
xor esi, esi
mov dword [esp + 0x4c], eax
mov eax, edx
sub eax, ebp
dec edx
inc eax
add edx, ebp
test eax, eax
cmovg esi, eax
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x18]
cmp edx, esi
cmovl esi, edx
xor edx, edx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x40], edx
cmp dword [esp + 0x90], edx
jl 0x100f9d71
mov edi, dword [esp + 0x20]
and dword [esp + 0x3c], 0
mov eax, edx
sub eax, ebx
dec edx
xor ecx, ecx
inc eax
add edx, ebx
test eax, eax
cmovg ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x84]
cmp edx, ecx
cmovl ecx, edx
mov edx, dword [esp + 0x48]
mov eax, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
cmp edx, dword [esp + 0x24]
jg 0x100f9d16
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + eax*4]
mov dword [esp + 0x60], edx
mov edx, edi
sub edx, eax
cmp dword [esp + 0x34], edi
mov eax, dword [esp + 0x30]
cmovl eax, edx
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x44]
jg 0x100f9cfb
mov edi, dword [esp + 0x58]
mov edx, eax
mov ebp, dword [esp + 0x44]
lea eax, [eax*4 + 3]
sub edx, ecx
add eax, dword [esp + 0x60]
mov dword [esp + 0x5c], edx
mov esi, edx
mov dword [esp + 0x38], eax
mov edx, ecx
mov eax, esi
sub edx, edi
cmp edi, ecx
cmovl eax, edx
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x38]
add dword [esp + 0x38], 4
movzx eax, byte [eax]
imul edx, eax
imul edx, dword [esp + 0x54]
add dword [esp + 0x3c], edx
inc edi
inc esi
cmp edi, ebp
jle 0x100f9cbf
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
inc eax
inc dword [esp + 0x30]
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x24]
jle 0x100f9c72
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
xor edx, edx
div dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
mov edx, eax
mov dword [esp + 0x44], ecx
mov eax, 0xff
cmp edx, eax
cmova edx, eax
imul edx, dword [esp + 0x2c]
shr edx, 8
sub al, dl
mov edx, dword [esp + 0x40]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x44]
mov dword [ebx + edx*4], eax
inc edx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x90]
jle 0x100f9c26
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x84]
jg 0x100f9eda
mov edi, dword [esp + 0x20]
and dword [esp + 0x38], 0
mov eax, edx
sub eax, ebx
dec edx
add edx, ebx
inc eax
xor ebx, ebx
test eax, eax
cmovg ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x84]
cmp edx, ebx
mov dword [esp + 0x3c], eax
cmovl ebx, edx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x88]
cmp eax, dword [esp + 0x24]
jg 0x100f9e7f
mov ecx, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x30], eax
mov edx, dword [esi + ecx*4]
mov dword [esp + 0x60], edx
mov edx, edi
sub edx, ecx
cmp ecx, edi
cmovl eax, edx
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x44]
jg 0x100f9e63
mov esi, dword [esp + 0x34]
mov edx, eax
mov ebp, dword [esp + 0x58]
lea eax, [eax*4 + 3]
mov ecx, dword [esp + 0x44]
sub edx, esi
add eax, dword [esp + 0x60]
mov edi, edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], eax
mov edx, esi
mov eax, edi
sub edx, ebp
cmp ebp, esi
cmovl eax, edx
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x40]
add dword [esp + 0x40], 4
movzx eax, byte [eax]
imul edx, eax
imul edx, dword [esp + 0x54]
add dword [esp + 0x38], edx
inc ebp
inc edi
cmp ebp, ecx
jle 0x100f9e23
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
inc ecx
inc eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
cmp ecx, dword [esp + 0x24]
jle 0x100f9dd8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
xor edx, edx
div dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
mov edx, eax
mov dword [esp + 0x44], ecx
mov eax, 0xff
cmp edx, eax
cmova edx, eax
imul edx, dword [esp + 0x2c]
shr edx, 8
sub al, dl
mov edx, dword [esp + 0x34]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x44]
mov dword [ebx + edx*4], eax
inc edx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x34], edx
cmp edx, dword [esp + 0x84]
jle 0x100f9d8d
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x20], edx
cmp edx, dword [esp + 0x18]
jle 0x100f9be4
jmp 0x100fa0ad
xor edx, edx
mov dword [esp + 0x24], edx
cmp dword [esp + 0x18], edx
jl 0x100fa0ad
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + edx*4]
mov dword [esp + 0x20], eax
mov eax, edx
sub eax, ebp
dec edx
add edx, ebp
inc eax
xor ebp, ebp
test eax, eax
cmovg ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], ebp
cmp edx, eax
mov ebp, eax
cmovl ebp, edx
xor edx, edx
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x30], edx
cmp dword [esp + 0x84], edx
jl 0x100fa09c
mov edi, dword [esp + 0x24]
and dword [esp + 0x34], 0
mov eax, edx
sub eax, ebx
dec edx
xor esi, esi
inc eax
add edx, ebx
test eax, eax
cmovg esi, eax
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x84]
cmp edx, esi
cmovl esi, edx
mov edx, dword [esp + 0x64]
mov eax, edx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
cmp edx, dword [esp + 0x48]
jg 0x100fa03d
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + eax*4]
mov dword [esp + 0x5c], edx
mov edx, edi
sub edx, eax
cmp dword [esp + 0x3c], edi
mov eax, dword [esp + 0x38]
cmovl eax, edx
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x4c]
jg 0x100fa022
mov edi, dword [esp + 0x54]
mov edx, eax
mov ebp, dword [esp + 0x4c]
lea eax, [eax*4 + 3]
sub edx, ecx
add eax, dword [esp + 0x5c]
mov dword [esp + 0x58], edx
mov esi, edx
mov dword [esp + 0x40], eax
mov edx, ecx
mov eax, esi
sub edx, edi
cmp edi, ecx
cmovl eax, edx
mov edx, ebx
sub edx, eax
mov eax, dword [esp + 0x40]
add dword [esp + 0x40], 4
movzx eax, byte [eax]
imul edx, eax
imul edx, dword [esp + 0x44]
add dword [esp + 0x34], edx
inc edi
inc esi
cmp edi, ebp
jle 0x100f9fe6
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
inc eax
inc dword [esp + 0x38]
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x48]
jle 0x100f9f99
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
xor edx, edx
div dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x4c], ecx
mov eax, 0xff
cmp edx, eax
cmova edx, eax
imul edx, dword [esp + 0x2c]
shr edx, 8
sub al, dl
mov edx, dword [esp + 0x30]
mov byte [esp + 0x4f], al
mov eax, dword [esp + 0x4c]
mov dword [ebx + edx*4], eax
inc edx
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x30], edx
cmp edx, dword [esp + 0x84]
jle 0x100f9f4d
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
inc edx
mov dword [esp + 0x24], edx
cmp edx, eax
jle 0x100f9f06
test edi, edi
je 0x100fa0bb
add edi, 0xfffffff8
push edi
call fcn.101dad34
pop ecx
test esi, esi
je 0x100fa0c9
add esi, 0xfffffff8
push esi
call fcn.101dad34
pop ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
leave
ret 0x1c