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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x319040c
mov dword [esp + 0x14], ebx
call fcn.10017140
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov ebp, dword [esp + 0x9c]
mov dword [eax], ebx
xor eax, eax
mov edi, eax
push 0x2b
push ebp
mov dword [ecx], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
call fcn.100172b0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10015f50
nop
mov eax, dword [esi + 0xb]
mov ecx, dword [esi + 7]
lea edx, [esi + 0xf]
push edx
movzx edx, byte [esi + 6]
push eax
movzx eax, byte [esi + 5]
push ecx
push edx
push eax
push 0x319040c
call fcn.10017650
push esi
push ebp
call fcn.10017300
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x10015f20
push 0x319040c
call fcn.10015550
mov esi, eax
add esp, 4
test esi, esi
je 0x10015f7a
push 0x319040c
call fcn.10017140
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push 0x2b
push 0x319040c
call fcn.100172b0
add esp, 8
test eax, eax
je 0x10015fc7
lea ecx, [ecx]
add ebx, 1
cmp byte [eax + 5], 9
jbe 0x10015fa0
add dword [esp + 0x38], 1
jmp 0x10015fad
movzx ecx, byte [eax + 5]
add dword [esp + ecx*4 + 0x10], 1
lea ecx, [esp + ecx*4 + 0x10]
push eax
push 0x319040c
call fcn.10017300
add esp, 8
test eax, eax
jne 0x10015f90
mov edi, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x44], eax
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
add eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
add eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x54], eax
add eax, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
add eax, ecx
test ebx, ebx
mov dword [esp + 0x40], edi
lea edi, [edx + eax]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edi
jne 0x10016040
push 0x319040c
call fcn.10017140
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
push ebx
push 4
call fcn.10016510
push 0x2b
push 0x319040c
mov ebp, eax
call fcn.100172b0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10016143
movzx eax, byte [esi + 6]
mov bl, byte [esi + 5]
push eax
mov cl, bl
call fcn.10015d90
add esp, 4
test eax, eax
jne 0x100160c0
cmp bl, 9
jbe 0x10016088
mov eax, dword [esp + 0x38]
mov ecx, edi
add edi, eax
jmp 0x1001609a
movzx eax, byte [esi + 5]
add eax, eax
add eax, eax
mov ecx, dword [esp + eax + 0x38]
mov edi, dword [esp + eax + 0x10]
add edi, ecx
cmp ecx, edi
jae 0x100160bc
mov edi, edi
mov eax, dword [ebp + ecx*4]
test eax, eax
je 0x100160bc
cmp byte [eax + 5], bl
jne 0x100160b5
mov dl, byte [esi + 6]
cmp byte [eax + 6], dl
je 0x10016123
add ecx, 1
cmp ecx, edi
jb 0x100160a0
mov edi, dword [esp + 0x60]
call fcn.10015ac0
cmp byte [esi + 5], 9
jbe 0x100160e1
mov ecx, dword [esp + 0x88]
lea eax, [ecx + edi]
add ecx, 1
mov dword [esp + 0x88], ecx
jmp 0x100160fc
movzx eax, byte [esi + 5]
add eax, eax
add eax, eax
mov edx, dword [esp + eax + 0x60]
lea ecx, [esp + eax + 0x60]
mov eax, dword [esp + eax + 0x38]
add eax, edx
add edx, 1
mov dword [ecx], edx
mov ecx, dword [esp + 0x94]
mov dword [ebp + eax*4], esi
mov edx, dword [esi + 0xb]
add edx, 5
add dword [ecx], edx
cmp dword [esi + 0xb], 0x7fff
mov eax, dword [ecx]
jbe 0x10016127
add eax, 0x8004
mov dword [ecx], eax
jmp 0x10016127
mov edi, dword [esp + 0x60]
push esi
push 0x319040c
call fcn.10017300
mov esi, eax
add esp, 8
test esi, esi
jne 0x10016063
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
push ecx
push 1
call fcn.10016510
mov edx, dword [esp + 0x98]
add esp, 8
xor edi, edi
test ebx, ebx
mov dword [edx], eax
mov esi, eax
jbe 0x10016332
lea esp, [esp]
cmp dword [ebp + edi*4], 0
je 0x10016327
mov byte [esi], 0x1c
mov eax, dword [ebp + edi*4]
mov cl, byte [eax + 5]
mov byte [esi + 1], cl
mov edx, dword [ebp + edi*4]
mov al, byte [edx + 6]
add esi, 1
add esi, 1
mov byte [esi], al
mov ecx, dword [ebp + edi*4]
add esi, 1
cmp dword [ecx + 0xb], 0x7fff
jbe 0x100161e2
mov byte [esi], 0x80
mov byte [esi + 1], 4
mov edx, dword [ebp + edi*4]
movzx eax, byte [edx + 0xe]
add esi, 2
mov byte [esi], al
mov ecx, dword [ebp + edi*4]
mov dl, byte [ecx + 0xd]
mov byte [esi + 1], dl
mov eax, dword [ebp + edi*4]
mov ecx, dword [eax + 0xb]
shr ecx, 8
mov byte [esi + 2], cl
mov edx, dword [ebp + edi*4]
movzx eax, byte [edx + 0xb]
mov byte [esi + 3], al
add esi, 4
jmp 0x100161f7
mov edx, dword [ecx + 0xb]
shr edx, 8
mov byte [esi], dl
mov eax, dword [ebp + edi*4]
mov cl, byte [eax + 0xb]
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp + edi*4]
mov ecx, dword [eax + 7]
cmp ecx, 3
je 0x100162c4
cmp ecx, 4
je 0x100162c4
cmp ecx, 5
je 0x100162c4
cmp ecx, 6
je 0x100162c4
cmp ecx, 7
jne 0x10016286
cmp dword [eax + 0xb], 0x10
jne 0x10016286
movzx eax, word [eax + 0xf]
mov byte [esi], ah
mov byte [esi + 1], al
mov edx, dword [ebp + edi*4]
mov eax, dword [edx + 0x11]
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 2], cl
mov edx, eax
mov ecx, eax
shr edx, 0x10
mov byte [esi + 5], al
mov byte [esi + 3], dl
shr ecx, 8
mov byte [esi + 4], cl
mov eax, dword [ebp + edi*4]
mov edx, dword [eax + 0xb]
sub edx, 6
push edx
add eax, 0x15
push eax
lea eax, [esi + 6]
push eax
call fcn.10017a1d
mov ecx, dword [ebp + edi*4]
movzx eax, word [ecx + 0x1d]
add esp, 0xc
mov byte [esi + 0xe], ah
mov byte [esi + 0xf], al
jmp 0x10016320
cmp ecx, 8
jne 0x100162b1
cmp dword [eax + 0xb], 2
jb 0x100162b1
mov edx, dword [eax + 0xb]
movzx ebx, word [eax + 0xf]
push edx
add eax, 0xf
push eax
push esi
call fcn.10017a1d
mov byte [esi], bh
mov byte [esi + 1], bl
mov ebx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10016320
mov ecx, dword [eax + 0xb]
push ecx
add eax, 0xf
push eax
push esi
call fcn.10017a1d
add esp, 0xc
jmp 0x10016320
mov ecx, dword [eax + 0xb]
add ecx, 0xffffffff
cmp ecx, 3
ja 0x10016320
jmp dword [ecx*4 + 0x3186350]
mov edx, dword [ebp + edi*4]
add esi, dword [edx + 0xb]
add edi, 1
cmp edi, ebx
jb 0x10016170
push ebp
call fcn.100164f0
push 0x319040c
call fcn.10017140
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret