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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
cmp ebx, 0x21
mov dword [esp + 0xc], eax
jae 0x10016faa
push dword [ebp + 0x20]
push dword [ebp + 0x14]
push ecx
push ebx
push dword [esp + 0x1c]
call fcn.10018cf0
add esp, 0x14
jmp 0x10017457
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
lea edx, [ecx - 0x78]
lea edi, [esp + 0x50]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, ebx
nop word cs:[eax + eax]
nop dword [eax + eax]
sub esi, 1
jb 0x10017441
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x2c], esi
push ebx
mov dword [esp + 0x18], eax
push eax
mov esi, dword [esp + 0x14]
push esi
call fcn.100184f0
add esp, 0xc
imul ebx, eax, 0x78
mov dword [esp + 0x20], eax
mov ecx, 0x1e
mov eax, dword [esp + 0x24]
add ebx, esi
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x10], ebx
test eax, eax
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
je 0x10017040
mov ecx, eax
mov eax, dword [eax]
mov esi, ebx
xor eax, 2
or eax, dword [ecx + 4]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
jne 0x10017060
mov edx, dword [ebp + 0x10]
xor eax, 2
or eax, ecx
jne 0x10017045
jmp 0x10017290
mov edx, dword [ebp + 0x10]
mov esi, ebx
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x14]
jbe 0x100170a7
jmp 0x1001745f
mov edx, dword [ebp + 0x10]
xor eax, 2
or eax, ecx
je 0x10017290
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push esi
push dword [esp + 0x28]
push dword [eax]
call dword [ecx + 0x10]
mov edx, dword [ebp + 0x10]
add esp, 0xc
cmp al, 0xff
jne 0x10017290
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x14]
ja 0x1001745f
imul eax, eax, 0x78
mov ebx, dword [esp + 0xc]
mov dword [esp + 8], 0
mov dword [esp + 0x30], eax
add eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
nop word cs:[eax + eax]
nop
mov dword [esp + 0x34], eax
imul eax, eax, 0x78
add eax, dword [esp + 0xc]
cmp ebx, eax
mov dword [esp + 0x18], eax
jb 0x10017151
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x34], edi
je 0x100171e0
imul eax, dword [esp + 8], 0x78
mov ecx, dword [esp + 4]
mov edx, edi
mov esi, ebx
add ebx, 0x78
lea edi, [ecx + eax - 0x78]
add ecx, 0xffffff88
mov eax, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 4], ecx
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
jmp 0x100170d0
mov edx, dword [ebp + 0x10]
mov dword [esp + 4], esi
mov eax, 1
mov ecx, edx
mov esi, dword [esp + 8]
imul edi, esi, 0x78
add esi, eax
add edi, ecx
mov dword [esp + 8], esi
mov esi, ebx
mov ecx, 0x1e
add ebx, 0x78
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
jae 0x100170e3
mov eax, dword [ebx]
mov ecx, dword [esi + 4]
xor eax, 2
or eax, dword [ebx + 4]
mov eax, dword [esi]
jne 0x10017180
mov esi, dword [esp + 4]
xor eax, 2
add esi, 0xffffff88
or eax, ecx
jne 0x10017121
xor eax, eax
mov ecx, esi
mov dword [esp + 4], esi
jmp 0x1001712c
xor eax, 2
or eax, ecx
jne 0x100171a0
mov ecx, dword [esp + 4]
xor eax, eax
add ecx, 0xffffff88
mov dword [esp + 4], ecx
jmp 0x1001712c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push esi
push ebx
push dword [eax]
call dword [ecx + 0x10]
add esp, 0xc
mov esi, dword [esp + 4]
add esi, 0xffffff88
cmp al, 0xff
je 0x1001711e
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [esp + 4], esi
mov ecx, esi
jmp 0x1001712c
mov esi, dword [esp + 8]
imul ecx, esi, 0x78
mov dword [esp + 4], ecx
push ecx
push edx
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x30]
mov eax, edi
sub eax, esi
mov dword [esp + 0x18], eax
je 0x10017234
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
add ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add eax, ecx
nop dword [eax]
mov edi, eax
mov esi, ebx
mov ecx, 0x1e
add eax, 0x78
add ebx, 0xffffff88
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x10017220
mov ebx, dword [esp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
test ebx, ebx
je 0x10017290
cmp dword [esp + 0x14], ebx
jb 0x10017461
mov eax, dword [esp + 4]
add eax, dword [esp + 0xc]
push dword [ebp + 0x20]
lea edi, [esp + 0x54]
push edi
mov esi, dword [esp + 0x34]
push esi
push dword [ebp + 0x14]
push edx
push dword [esp + 0x2c]
push eax
call fcn.10016f70
mov ecx, dword [ebp + 0x10]
add esp, 0x1c
cmp ebx, 0x21
mov eax, ebx
jae 0x10016fd0
jmp 0x10016f91
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x14]
ja 0x1001745f
imul eax, eax, 0x78
mov ebx, dword [esp + 0xc]
mov dword [esp + 4], 0
mov dword [esp + 0x1c], eax
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
nop word [eax + eax]
mov dword [esp + 0x20], eax
imul eax, eax, 0x78
add eax, dword [esp + 0xc]
cmp ebx, eax
mov dword [esp + 0x18], eax
jb 0x10017347
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x20], esi
je 0x100173b0
mov eax, dword [esp + 4]
mov esi, ebx
add dword [esp + 8], 0xffffff88
mov ecx, 0x1e
add ebx, 0x78
imul edi, eax, 0x78
inc eax
add edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x100172c0
mov esi, dword [esp + 8]
mov eax, 1
mov ecx, edx
add esi, 0xffffff88
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
imul edi, esi, 0x78
add esi, eax
add edi, ecx
mov dword [esp + 4], esi
mov esi, ebx
mov ecx, 0x1e
add ebx, 0x78
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
jae 0x100172d3
mov eax, dword [esi]
mov ecx, dword [ebx + 4]
xor eax, 2
or eax, dword [esi + 4]
mov eax, dword [ebx]
jne 0x10017370
mov esi, dword [esp + 8]
xor eax, 2
add esi, 0xffffff88
or eax, ecx
mov eax, 1
mov ecx, edx
je 0x1001731e
jmp 0x100173a6
xor eax, 2
or eax, ecx
je 0x10017310
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push ebx
push esi
push dword [eax]
call dword [ecx + 0x10]
mov edx, dword [ebp + 0x10]
add esp, 0xc
mov esi, dword [esp + 8]
mov ecx, edx
add esi, 0xffffff88
cmp al, 0xff
mov eax, 1
jne 0x1001731e
xor eax, eax
mov ecx, esi
jmp 0x1001731e
mov edi, dword [esp + 4]
imul ecx, edi, 0x78
mov dword [esp + 0x10], ecx
push ecx
push edx
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x1c]
sub esi, edi
mov dword [esp + 8], esi
je 0x10017404
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
add ebx, dword [esp + 0x28]
mov edx, dword [esp + 8]
add eax, ecx
nop word [eax + eax]
mov edi, eax
mov esi, ebx
mov ecx, 0x1e
add eax, 0x78
add ebx, 0xffffff88
dec edx
rep movsd dword es:[edi], dword [esi]
jne 0x100173f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
cmp eax, ecx
jb 0x10017498
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 8]
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x2c]
lea edi, [esp + 0x50]
mov dword [esp + 0x24], 0
add dword [esp + 0xc], eax
cmp ebx, 0x21
jae 0x10016fbf
jmp 0x10016f91
push dword [ebp + 0x20]
push 1
push dword [ebp + 0x14]
push ecx
push eax
push dword [esp + 0x20]
call fcn.10019340
add esp, 0x18
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
ud2
mov dword [esp + 0x38], 0x101ce42c
mov dword [esp + 0x3c], 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], 0
lea eax, [esp + 0x38]
push 0x101ce434
push eax
call fcn.101cc530
push 0x101ce444
push eax
push ecx
call fcn.101cc8f0
int3