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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x2c803ec
mov dword [esp + 0x14], ebx
call fcn.100164a0
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.10016610
mov esi, eax
add esp, 0xc
test esi, esi
je 0x100152b0
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 0x2c803ec
call fcn.100169b0
push esi
push ebp
call fcn.10016660
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x10015280
push 0x2c803ec
call fcn.100148b0
mov esi, eax
add esp, 4
test esi, esi
je 0x100152da
push 0x2c803ec
call fcn.100164a0
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push 0x2b
push 0x2c803ec
call fcn.10016610
add esp, 8
test eax, eax
je 0x10015327
lea ecx, [ecx]
add ebx, 1
cmp byte [eax + 5], 9
jbe 0x10015300
add dword [esp + 0x38], 1
jmp 0x1001530d
movzx ecx, byte [eax + 5]
add dword [esp + ecx*4 + 0x10], 1
lea ecx, [esp + ecx*4 + 0x10]
push eax
push 0x2c803ec
call fcn.10016660
add esp, 8
test eax, eax
jne 0x100152f0
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 0x100153a0
push 0x2c803ec
call fcn.100164a0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
push ebx
push 4
call fcn.10015870
push 0x2b
push 0x2c803ec
mov ebp, eax
call fcn.10016610
mov esi, eax
add esp, 0x10
test esi, esi
je 0x100154a3
movzx eax, byte [esi + 6]
mov bl, byte [esi + 5]
push eax
mov cl, bl
call fcn.100150f0
add esp, 4
test eax, eax
jne 0x10015420
cmp bl, 9
jbe 0x100153e8
mov eax, dword [esp + 0x38]
mov ecx, edi
add edi, eax
jmp 0x100153fa
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 0x1001541c
mov edi, edi
mov eax, dword [ebp + ecx*4]
test eax, eax
je 0x1001541c
cmp byte [eax + 5], bl
jne 0x10015415
mov dl, byte [esi + 6]
cmp byte [eax + 6], dl
je 0x10015483
add ecx, 1
cmp ecx, edi
jb 0x10015400
mov edi, dword [esp + 0x60]
call fcn.10014e20
cmp byte [esi + 5], 9
jbe 0x10015441
mov ecx, dword [esp + 0x88]
lea eax, [ecx + edi]
add ecx, 1
mov dword [esp + 0x88], ecx
jmp 0x1001545c
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 0x10015487
add eax, 0x8004
mov dword [ecx], eax
jmp 0x10015487
mov edi, dword [esp + 0x60]
push esi
push 0x2c803ec
call fcn.10016660
mov esi, eax
add esp, 8
test esi, esi
jne 0x100153c3
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
push ecx
push 1
call fcn.10015870
mov edx, dword [esp + 0x98]
add esp, 8
xor edi, edi
test ebx, ebx
mov dword [edx], eax
mov esi, eax
jbe 0x10015692
lea esp, [esp]
cmp dword [ebp + edi*4], 0
je 0x10015687
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 0x10015542
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 0x10015557
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 0x10015624
cmp ecx, 4
je 0x10015624
cmp ecx, 5
je 0x10015624
cmp ecx, 6
je 0x10015624
cmp ecx, 7
jne 0x100155e6
cmp dword [eax + 0xb], 0x10
jne 0x100155e6
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.10016d6d
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 0x10015680
cmp ecx, 8
jne 0x10015611
cmp dword [eax + 0xb], 2
jb 0x10015611
mov edx, dword [eax + 0xb]
movzx ebx, word [eax + 0xf]
push edx
add eax, 0xf
push eax
push esi
call fcn.10016d6d
mov byte [esi], bh
mov byte [esi + 1], bl
mov ebx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10015680
mov ecx, dword [eax + 0xb]
push ecx
add eax, 0xf
push eax
push esi
call fcn.10016d6d
add esp, 0xc
jmp 0x10015680
mov ecx, dword [eax + 0xb]
add ecx, 0xffffffff
cmp ecx, 3
ja 0x10015680
jmp dword [ecx*4 + 0x2c756b0]
mov edx, dword [ebp + edi*4]
add esi, dword [edx + 0xb]
add edi, 1
cmp edi, ebx
jb 0x100154d0
push ebp
call fcn.10015850
push 0x2c803ec
call fcn.100164a0
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret