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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
test ebp, ebp
je 0x101f4108
cmp dword [esp + 0x74], 4
jbe 0x101f42b0
cmp dword [esp + 0x74], 0xc
mov eax, 0xffffffd4
jbe 0x101f4110
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x74], 0xb
bsr edx, dword [esp + 0x80]
bsr eax, ebx
add eax, 1
add edx, 2
cmp eax, edx
cmova eax, edx
cmp dword [esp + 0x74], eax
jb 0x101f42b0
mov dword [esp + 8], ebx
cmp dword [esp + 0x84], 1
mov eax, 0x3e
mov dword [esp + 0xc], 0
sbb esi, esi
sub eax, dword [esp + 0x74]
xor edi, edi
mov dword [esp], 0
and esi, 2
mov dword [esp + 4], 0x40000000
sub esi, 1
mov dword [esp + 0x2c], eax
call fcn.101dd5f8
movzx ecx, byte [esp + 0x74]
mov word [esp + 0x20], di
xor edi, edi
mov dword [esp + 0x3c], eax
mov eax, 0x2a
sub eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], eax
mov ebp, eax
mov eax, ebx
shr eax, cl
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], eax
mov word [esp + 0x38], si
mov dword [esp + 0x7c], ebx
jmp 0x101f41e0
movzx ecx, word [esp + 0x38]
sub ebp, 1
mov eax, dword [esp + 0x70]
mov word [eax + edi*2], cx
add edi, 1
cmp dword [esp + 0x80], edi
jb 0x101f42c0
mov eax, dword [esp + 0x78]
mov esi, dword [eax + edi*4]
cmp esi, dword [esp + 0x7c]
je 0x101f42f0
xor ecx, ecx
test esi, esi
je 0x101f41c8
cmp dword [esp + 0x28], esi
jae 0x101f41c0
mov eax, esi
mul dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
imul ecx, esi
xor esi, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmovne eax, edx
cmovne edx, esi
mov ecx, eax
cmp ax, 7
jg 0x101f4295
mov ecx, ebx
mov dword [esp + 0x30], eax
xor ebx, ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, ebx
mov ebx, dword [esp + 0x18]
movzx ecx, byte [esp + 0x48]
sub ebx, eax
mov eax, dword [esp + 0x30]
sbb esi, edx
xor edx, edx
mov eax, dword [eax*4 + 0x10451220]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x101f4282
mov edx, eax
xor eax, eax
mov ecx, ebx
mov ebx, esi
mov esi, edx
cmp eax, ecx
movzx ecx, word [esp + 0x30]
sbb esi, ebx
adc cx, 0
cmp cx, word [esp + 0x20]
jle 0x101f42a5
mov word [esp + 0x20], cx
mov dword [esp + 0x44], edi
movsx eax, cx
sub ebp, eax
jmp 0x101f41c8
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x44]
mov edi, ebp
mov ebx, dword [esp + 0x7c]
neg edi
lea ecx, [eax + edx*2]
movzx edx, word [ecx]
mov eax, edx
sar ax, 1
cwde
cmp edi, eax
jge 0x101f4300
add edx, ebp
mov word [ecx], dx
mov eax, dword [esp + 0x74]
jmp 0x101f40fa
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x74]
lea eax, [ebx + ebx*2]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x28]
lea ecx, [edx + 1]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x28], ebp
shr eax, cl
mov ecx, ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
lea edx, [eax + edx*4 + 4]
mov dword [esp + 0x3c], eax
mov ebp, edx
jmp 0x101f4358
mov edi, 0xfffffffe
cmp dword [esp + 0x20], edx
jae 0x101f4378
add eax, 4
mov word [ecx], di
add ecx, 2
cmp ebp, eax
je 0x101f4390
mov edx, dword [eax]
xor edi, edi
test edx, edx
je 0x101f434b
cmp esi, edx
jb 0x101f4340
add dword [esp + 0x18], 1
movzx edi, word [esp + 0x38]
sub ebx, edx
jmp 0x101f434b
add dword [esp + 0x18], 1
sub ebx, edx
mov edi, 1
jmp 0x101f434b
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
sub edi, esi
je 0x101f42e1
mov eax, ebx
xor edx, edx
div edi
cmp dword [esp + 0x20], eax
jb 0x101f44d3
mov eax, dword [esp + 0x80]
lea ecx, [eax + 1]
cmp esi, ecx
je 0x101f4599
test ebx, ebx
je 0x101f4558
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
lea esi, [eax + 2]
mov ecx, 0x3d
sub ecx, dword [esp + 0x74]
xor eax, eax
xor edx, edx
test cl, 0x20
mov dword [esp + 8], ebx
sete al
setne dl
mov dword [esp + 0xc], 0
shl eax, cl
shl edx, cl
movzx ecx, byte [esp + 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x18], eax
mov eax, edi
mov dword [esp + 0x1c], edx
xor edx, edx
shl eax, cl
shld edx, edi, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.101dd5f8
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
add ebx, esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x3c]
jmp 0x101f4468
add ebp, 2
add ebx, 4
cmp dword [esp + 0x28], ebp
je 0x101f42e1
cmp word [ebp], 0xfffe
jne 0x101f4458
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
imul ecx, dword [ebx]
mul dword [ebx]
add edx, ecx
add eax, dword [esp + 0x18]
movzx ecx, byte [esp + 0x2c]
adc edx, dword [esp + 0x1c]
mov esi, eax
mov edi, edx
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x101f449d
mov esi, edi
xor edi, edi
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x1c]
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x101f44b9
mov esi, edi
mov ecx, dword [esp + 0x20]
sub ecx, esi
je 0x101f42b0
mov word [ebp], cx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x101f4458
lea ecx, [edi + edi]
lea eax, [ebx + ebx*2]
xor edx, edx
mov esi, dword [esp + 0x70]
div ecx
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x78]
add esi, 2
mov edi, eax
mov eax, dword [esp + 0x80]
add eax, eax
mov dword [esp + 0x28], eax
lea ecx, [eax + esi]
mov eax, dword [esp + 0x70]
jmp 0x101f4512
add eax, 2
add edx, 4
cmp eax, ecx
je 0x101f452c
cmp word [eax], 0xfffe
jne 0x101f4508
mov ebp, dword [edx]
cmp edi, ebp
jb 0x101f4508
add dword [esp + 0x18], 1
sub ebx, ebp
mov word [eax], 1
jmp 0x101f4508
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea ecx, [edx + 1]
sub edi, eax
cmp ecx, eax
je 0x101f4599
test ebx, ebx
jne 0x101f43db
test edi, edi
je 0x101f42e1
xor edx, edx
lea esi, [esi]
mov eax, dword [esp + 0x70]
lea ebx, [eax + edx*2]
movzx eax, word [ebx]
test ax, ax
jle 0x101f4590
add eax, 1
mov word [ebx], ax
lea eax, [edx + 1]
xor edx, edx
div ecx
sub edi, 1
jne 0x101f4560
jmp 0x101f42e1
lea eax, [edx + 1]
xor edx, edx
div ecx
jmp 0x101f4560
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x80]
xor esi, esi
xor ecx, ecx
xor eax, eax
jmp 0x101f45b2
mov eax, edx
mov edx, dword [ebx + eax*4]
cmp ecx, edx
jae 0x101f45bd
mov ecx, edx
mov esi, eax
lea edx, [eax + 1]
cmp ebp, eax
jne 0x101f45b0
mov eax, dword [esp + 0x70]
add word [eax + esi*2], di
jmp 0x101f42e1