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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov dword [esp + 0x28], ebx
mov esi, dword [edi]
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x100f1c3a
call fcn.100d8ee0
test eax, eax
jne 0x100f1b3c
push eax
push 0x40
call fcn.10027b10
mov esi, eax
mov dword [esp + 0x34], eax
add esp, 8
test esi, esi
je 0x100f1b3c
push 0x40
push 0
push esi
call fcn.1013ad10
mov eax, dword [ebx + 0xe8]
add esp, 0xc
cdq
mov dword [edi], esi
mov edi, eax
mov dword [esp + 0x24], edx
call fcn.100d8ee0
test eax, eax
je 0x100f1b48
mov dword [esi + 0x30], 0
mov eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x24]
push edi
call fcn.10027b10
add esp, 8
mov dword [esi + 0x30], eax
test eax, eax
je 0x100f1b3c
mov eax, dword [ebx + 0xe8]
mov edx, 0xa
mov dword [esi + 0x28], eax
mov ecx, ebx
lea eax, [esp + 0x24]
push 0
push eax
call fcn.100ee4e0
add esp, 8
test eax, eax
jne 0x100f1fb8
mov edi, dword [esp + 0x24]
push edi
call fcn.10055f30
add esp, 4
cmp eax, 0x64
jne 0x100f1c29
test edi, edi
je 0x100f1bd5
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100f1bb0
push eax
call dword [0x10178a88]
add esp, 4
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x100f1bc2
xor eax, eax
cmp ax, word [edi + 0x90]
jb 0x100f1bda
mov ecx, dword [edi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.1002b6b0
mov ecx, 0x10162818
call fcn.1004e6e0
mov ebx, eax
mov eax, edx
mov dword [esp + 0x24], eax
test edi, edi
je 0x100f1c1d
mov ecx, dword [edi]
mov edx, dword [edi + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x100f1bfe
test edx, edx
jne 0x100f1bfe
xor eax, eax
jmp 0x100f1c03
call fcn.10028630
mov dword [edi + 0x24], eax
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100f1c19
push eax
call dword [0x10178a90]
add esp, 4
mov eax, dword [esp + 0x24]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
push edi
call fcn.10054fa0
add esp, 4
test eax, eax
jne 0x100f1fb8
mov edx, dword [esi + 0x1c]
xor edi, edi
mov eax, dword [esi + 0x2c]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edi
test edx, edx
jle 0x100f1c6c
mov ebx, dword [ebp + 0xc]
cmp edi, ecx
jge 0x100f1c68
mov eax, dword [esi + 0x18]
mov al, byte [edi + eax]
cmp al, byte [edi + ebx]
jne 0x100f1c68
inc edi
cmp edi, edx
jl 0x100f1c54
mov dword [esp + 0x24], edi
mov ebx, ecx
sub ebx, edi
mov dword [esp + 0x18], ebx
test ebx, ebx
jle 0x100f1fb3
mov eax, edi
xor edi, edi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x100f1c83
mov eax, ebx
mov dword [esp + 0x1c], edi
cdq
xor esi, esi
mov ecx, eax
nop dword [eax]
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x100f1ca0
mov eax, dword [ebp + 0x18]
xor edi, edi
cdq
mov ebx, edx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
mov edx, eax
mov dword [esp + 0x34], eax
mov ecx, ebx
mov dword [esp + 0x30], ebx
nop word [eax + eax]
shrd edx, ecx, 7
inc edi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x100f1cd0
mov eax, dword [esp + 0x20]
add eax, edi
mov edi, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
add eax, dword [ebp + 0x18]
cdq
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edx
test eax, eax
jle 0x100f1dfe
cdq
add eax, dword [esp + 0x1c]
mov ecx, edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
adc ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xe8]
cdq
cmp ecx, edx
jl 0x100f1dfe
jg 0x100f1d36
cmp dword [esp + 0x24], eax
jbe 0x100f1dfe
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
jne 0x100f1d51
cmp edx, 0x7fffffff
je 0x100f1fb3
mov ecx, eax
mov eax, edx
add ecx, 1
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x28]
adc eax, 0
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x14]
push eax
push edx
push dword [esp + 0x2c]
mov edx, dword [esi + 0x30]
call fcn.100f0e20
add esp, 0xc
test eax, eax
jne 0x100f1fb8
mov ecx, dword [esp + 0x28]
lea eax, [edi + 1]
push eax
push dword [ebp + 0xc]
mov edx, esi
inc dword [ecx + 0x34]
push ecx
call fcn.100f1480
add esp, 0xc
test eax, eax
jne 0x100f1fb8
mov dword [esp + 0x14], eax
xor edi, edi
mov dword [esi + 0x1c], eax
xor ebx, ebx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc ebx
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x100f1db8
mov esi, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x30]
shrd esi, ebx, 7
inc ecx
shr ebx, 7
mov eax, esi
or eax, ebx
jne 0x100f1dd4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [ebp + 0x18]
add eax, dword [ebp + 0x10]
inc ecx
add eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x20], edx
jmp 0x100f1e02
mov ebx, dword [esp + 0x1c]
add dword [esi + 0x38], ebx
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x20]
adc dword [esi + 0x3c], ecx
cdq
cmp ecx, edx
jl 0x100f1e4d
jg 0x100f1e1a
cmp ebx, eax
jbe 0x100f1e4d
mov eax, dword [esi + 0x30]
mov dword [esp + 0x34], eax
call fcn.100d8ee0
test eax, eax
jne 0x100f1b3c
push dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
push ebx
call fcn.10027f60
add esp, 8
test eax, eax
je 0x100f1b3c
mov dword [esi + 0x30], eax
mov dword [esi + 0x28], ebx
mov ecx, dword [esi + 0x30]
mov eax, edi
add ecx, dword [esp + 0x14]
cdq
mov ebx, ecx
mov dword [esp + 0x30], ecx
mov ecx, eax
nop
mov al, cl
mov dword [esp + 0x34], ebx
or al, 0x80
shrd ecx, edx, 7
mov byte [ebx], al
inc ebx
mov byte [esp + 0x13], al
mov eax, ecx
shr edx, 7
or eax, edx
jne 0x100f1e60
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0x13]
sub ebx, dword [esp + 0x30]
and al, 0x7f
mov byte [ecx], al
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x30]
add eax, ebx
add ecx, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov ebx, ecx
cdq
mov dword [esp + 0x30], ecx
mov ecx, eax
mov al, cl
mov dword [esp + 0x34], ebx
or al, 0x80
shrd ecx, edx, 7
mov byte [ebx], al
inc ebx
mov byte [esp + 0x13], al
mov eax, ecx
shr edx, 7
or eax, edx
jne 0x100f1ea8
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0x13]
push dword [esp + 0x18]
sub ebx, dword [esp + 0x34]
and al, 0x7f
add dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x18]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
add eax, edi
push eax
mov eax, dword [esi + 0x30]
add eax, ebx
push eax
call fcn.1013c1a0
add ebx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [esi + 0x30]
add eax, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], eax
mov edi, eax
mov eax, dword [ebp + 0x18]
cdq
mov ecx, eax
nop dword [eax]
mov bl, cl
mov dword [esp + 0x34], edi
shrd ecx, edx, 7
or bl, 0x80
mov byte [edi], bl
mov eax, ecx
shr edx, 7
inc edi
or eax, edx
jne 0x100f1f10
mov eax, dword [esp + 0x34]
and bl, 0x7f
sub edi, dword [esp + 0x30]
mov byte [eax], bl
mov ebx, dword [esp + 0x14]
mov eax, dword [esi + 0x30]
add ebx, edi
mov edi, dword [ebp + 0x18]
add eax, ebx
push edi
push dword [ebp + 0x14]
push eax
call fcn.1013c1a0
lea eax, [ebx + edi]
add esp, 0xc
mov ebx, dword [ebp + 0x10]
mov dword [esi + 0x2c], eax
cmp ebx, dword [esi + 0x20]
jle 0x100f1f98
mov edi, dword [esi + 0x24]
call fcn.100d8ee0
test eax, eax
jne 0x100f1b3c
mov ecx, 2
mov eax, ebx
imul ecx
mov ecx, edi
push edx
push eax
call fcn.10027f60
add esp, 8
test eax, eax
je 0x100f1b3c
lea ecx, [ebx + ebx]
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x18], eax
push ebx
push dword [ebp + 0xc]
push dword [esi + 0x18]
call fcn.1013c1a0
add esp, 0xc
mov dword [esi + 0x1c], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x10b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret