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

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x40]
mov eax, dword [edi]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x38]
mov esi, ecx
mov ecx, dword [edx]
mov dword [edx], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], eax
mov dword [edi], 0
lea ecx, [ecx]
mov edi, dword [esi + 0x28]
cmp dword [esi + 0x24], edi
jne 0x100157bf
mov dword [esi + 0x24], 0
mov edx, dword [esi + 0x24]
mov ebx, edi
sub ebx, edx
mov dword [esp + 0x30], edx
cmp ecx, ebx
jbe 0x100157dc
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0
jmp 0x100157ec
add edx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov edi, edx
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
mov dword [edx], ecx
cmp dword [esi + 0x78], 8
mov dword [esp + 0x14], ecx
jne 0x1001588c
mov eax, dword [esp + 0x48]
mov dword [eax], 1
xor ebp, ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
add dword [ecx], eax
add dword [esp + 0x3c], eax
sub dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov ebx, dword [esp + 0x28]
sub edi, eax
push edi
add ecx, eax
push ecx
push ebx
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
add dword [eax], edi
add ebx, edi
sub ecx, edi
add esp, 0xc
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ecx
test ebp, ebp
jne 0x10015b02
test edi, edi
je 0x10015b0e
test ecx, ecx
je 0x10015b0e
mov eax, dword [esp + 0x1c]
jmp 0x100157b0
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x78]
mov ebp, dword [esi + 0x24]
cmp edx, 9
je 0x100158eb
cmp ebp, edi
jne 0x100158a6
cmp dword [esp + 0x24], 0
je 0x10015ace
cmp edx, 6
je 0x100158f5
cmp edx, 7
je 0x100158f5
cmp ecx, eax
je 0x10015add
mov eax, dword [esp + 0x10]
mov al, byte [eax]
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, esi
call fcn.10015380
inc dword [esp + 0x10]
mov dword [esi + 0x78], eax
cmp ebp, dword [esp + 0x20]
jne 0x10015abf
cmp eax, 8
je 0x10015abf
mov dword [esi + 0x78], 9
mov ebp, 1
jmp 0x10015816
sub eax, ecx
mov ecx, dword [esi + 0x74]
sub edi, ebp
xor ebx, ebx
mov dword [esp + 0x18], eax
cmp ecx, edi
ja 0x1001590d
mov edi, ecx
mov ebx, 1
mov cl, byte [esi + 0x7c]
test cl, cl
js 0x100159cf
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x1c]
je 0x10015aec
cmp edx, 6
jne 0x1001596a
xor edx, edx
cmp cl, 1
sete dl
test edx, edx
je 0x1001594a
mov eax, 1
mov dword [esi + 0x84], eax
mov dword [esi + 0x88], eax
jmp 0x10015953
cmp dword [esi + 0x80], 0
jne 0x100158e4
push 0
mov ecx, esi
mov dword [esi + 0x80], 0
call fcn.10017640
mov eax, dword [esp + 0x18]
cmp eax, edi
jbe 0x10015974
mov eax, edi
mov dword [esp + 0x18], eax
test eax, eax
je 0x100158e4
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x10]
add edx, dword [esi + 0x24]
push eax
push ecx
push edx
mov edi, eax
call sub.MSVCRT.dll_memcpy
add dword [esi + 0x24], edi
add esp, 0xc
cmp dword [esi + 0x30], 0
jne 0x100159ab
mov eax, dword [esi + 0xc]
mov ecx, eax
sub ecx, dword [esi + 0x2c]
cmp ecx, edi
ja 0x100159ab
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x18]
add dword [esp + 0x10], eax
add dword [esp + 0x14], eax
sub dword [esi + 0x74], eax
add dword [esi + 0x2c], edi
mov eax, dword [esi + 0x74]
neg eax
sbb eax, eax
and eax, 7
mov dword [esi + 0x78], eax
jmp 0x10015abf
cmp edx, 6
jne 0x10015a2f
movzx eax, cl
shr eax, 5
and eax, 3
xor edx, edx
cmp eax, 3
sete dl
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
test edx, edx
jne 0x100159fe
cmp dword [esi + 0x80], edx
jne 0x100158e4
test eax, eax
jne 0x10015a0e
cmp dword [esi + 0x84], eax
jne 0x100158e4
push eax
mov ecx, esi
call fcn.10017640
xor eax, eax
mov dword [esi + 0x80], eax
mov dword [esi + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x78], 7
mov ecx, dword [esi + 0x70]
cmp eax, ecx
jbe 0x10015a3a
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
push edx
push ebx
lea eax, [esp + 0x20]
push eax
push ecx
lea edx, [edi + ebp]
mov ecx, esi
call fcn.10017690
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x24]
sub dword [esi + 0x70], edx
add dword [esp + 0x10], edx
add dword [esp + 0x14], edx
mov ebx, dword [esi + 0x70]
sub ecx, ebp
sub dword [esi + 0x74], ecx
mov edi, dword [esi + 0x74]
xor ebp, ebp
cmp eax, ebp
jne 0x10015afb
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
cmp eax, 3
je 0x10015816
cmp edx, ebp
jne 0x10015aae
cmp ecx, ebp
jne 0x10015aae
cmp eax, 4
jne 0x100158e4
cmp edi, ebp
jne 0x100158e4
cmp ebx, ebp
jne 0x100158e4
mov dword [esi + 0x78], ebp
mov ecx, dword [esp + 0x48]
cmp dword [ecx], 4
jne 0x10015abf
mov edx, ecx
mov dword [edx], 2
cmp dword [esi + 0x78], 8
jne 0x10015880
jmp 0x1001580a
mov eax, dword [esp + 0x48]
mov dword [eax], 2
jmp 0x10015814
mov ecx, dword [esp + 0x48]
mov dword [ecx], 3
jmp 0x10015814
mov edx, dword [esp + 0x48]
mov dword [edx], 3
jmp 0x10015814
mov ebp, eax
jmp 0x10015816
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x24
ret 0x14
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 0x14