Function at 0x100171e0
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 0x1001721a
push dword [ebp + 0x20]
push dword [ebp + 0x14]
push ecx
push ebx
push dword [esp + 0x1c]
call fcn.10018f10
add esp, 0x14
jmp 0x100176c7
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 0x100176b1
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.10018710
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 0x100172b0
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 0x100172d0
mov edx, dword [ebp + 0x10]
xor eax, 2
or eax, ecx
jne 0x100172b5
jmp 0x10017500
mov edx, dword [ebp + 0x10]
mov esi, ebx
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x14]
jbe 0x10017317
jmp 0x100176cf
mov edx, dword [ebp + 0x10]
xor eax, 2
or eax, ecx
je 0x10017500
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 0x10017500
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 0x100176cf
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 0x100173c1
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x34], edi
je 0x10017450
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 0x10017340
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 0x10017353
mov eax, dword [ebx]
mov ecx, dword [esi + 4]
xor eax, 2
or eax, dword [ebx + 4]
mov eax, dword [esi]
jne 0x100173f0
mov esi, dword [esp + 4]
xor eax, 2
add esi, 0xffffff88
or eax, ecx
jne 0x10017391
xor eax, eax
mov ecx, esi
mov dword [esp + 4], esi
jmp 0x1001739c
xor eax, 2
or eax, ecx
jne 0x10017410
mov ecx, dword [esp + 4]
xor eax, eax
add ecx, 0xffffff88
mov dword [esp + 4], ecx
jmp 0x1001739c
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 0x1001738e
mov edx, dword [ebp + 0x10]
xor eax, eax
mov dword [esp + 4], esi
mov ecx, esi
jmp 0x1001739c
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 0x100174a4
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 0x10017490
mov ebx, dword [esp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
test ebx, ebx
je 0x10017500
cmp dword [esp + 0x14], ebx
jb 0x100176d1
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.100171e0
mov ecx, dword [ebp + 0x10]
add esp, 0x1c
cmp ebx, 0x21
mov eax, ebx
jae 0x10017240
jmp 0x10017201
mov eax, dword [esp + 0x14]
cmp eax, dword [ebp + 0x14]
ja 0x100176cf
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 0x100175b7
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x20], esi
je 0x10017620
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 0x10017530
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 0x10017543
mov eax, dword [esi]
mov ecx, dword [ebx + 4]
xor eax, 2
or eax, dword [esi + 4]
mov eax, dword [ebx]
jne 0x100175e0
mov esi, dword [esp + 8]
xor eax, 2
add esi, 0xffffff88
or eax, ecx
mov eax, 1
mov ecx, edx
je 0x1001758e
jmp 0x10017616
xor eax, 2
or eax, ecx
je 0x10017580
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 0x1001758e
xor eax, eax
mov ecx, esi
jmp 0x1001758e
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 0x10017674
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 0x10017660
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
cmp eax, ecx
jb 0x10017708
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 0x1001722f
jmp 0x10017201
push dword [ebp + 0x20]
push 1
push dword [ebp + 0x14]
push ecx
push eax
push dword [esp + 0x20]
call fcn.10019560
add esp, 0x18
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
ud2
mov dword [esp + 0x38], 0x101ce3ac
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 0x101ce3b4
push eax
call fcn.101cc880
push 0x101ce3c4
push eax
push ecx
call fcn.101ccc30
int3