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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov dword [ebp - 0x24], edx
mov eax, dword [ecx]
mov dword [ebp - 0x14], eax
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x10178589
cmp dword [ebp - 0x24], 0
je 0x10178581
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
sub eax, 1
mov ecx, 0
adc ecx, 0xa1
mov dword [ebp - 0x38], ecx
neg eax
mov dword [ebp - 0x40], eax
lea eax, [edx + 1]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x14]
add eax, 0x20
mov dword [ebp - 0x30], eax
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x18], ebx
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0x1c], eax
cmp byte [edi + 0x60], 0
mov edx, 0
mov dword [ebp - 0x10], edi
je 0x10178109
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x58], 0
je 0x101781c5
mov eax, dword [edi + 0x40]
test eax, eax
je 0x1017828b
add eax, dword [ebp - 0x40]
mov ecx, ebx
mov edx, 0x56
push 0
push 1
push eax
call fcn.1002fb80
mov edi, dword [ebp - 0x10]
add esp, 0xc
mov edi, dword [edi + 0x24]
test edi, edi
jne 0x101780b7
jmp 0x10178581
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x101780cb
mov esi, dword [eax]
test esi, esi
jle 0x101783a9
mov ecx, ebx
mov edx, 0x5e
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x10]
push dword [eax + 0x50]
push dword [ebp + 8]
call fcn.1002fb80
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add esp, 0xc
xor edx, edx
inc edx
cmp esi, 1
je 0x101780cb
mov dword [ebp - 0x20], esi
mov eax, dword [edi + 0x50]
inc eax
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0x101b4684
mov ebx, ecx
jne 0x10178161
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ecx + 0x30]
mov ecx, dword [ebp - 0x18]
mov edx, 0x5e
push dword [ebp - 0x34]
push eax
push ebx
mov ebx, ecx
call fcn.1002fb80
add esp, 0xc
mov edx, 2
mov esi, dword [ebp - 0x20]
cmp esi, 2
mov edi, dword [ebp - 0x10]
je 0x101780cb
mov ebx, 2
mov eax, dword [ebp + 0x10]
add eax, ebx
mov esi, dword [edi + 0x50]
add esi, ebx
mov ecx, dword [ebp - 0x18]
mov edx, 0x5e
push eax
push esi
mov esi, dword [ebp - 0x20]
push dword [ebp + 8]
call fcn.1002fb80
mov edi, dword [ebp - 0x10]
add esp, 0xc
inc ebx
cmp esi, ebx
jne 0x10178191
mov edx, esi
mov ebx, dword [ebp - 0x18]
jmp 0x101780cb
mov eax, dword [ebp - 0x1c]
test byte [eax + 5], 0x10
je 0x101780d8
cmp byte [edi + 0x11], 0x5a
je 0x101780d8
mov ecx, ebx
mov edx, 0x32
xor eax, eax
push eax
push eax
mov esi, dword [ebp + 0x10]
push esi
call fcn.1002fb80
add esp, 0xc
mov edi, eax
cmp dword [ebp + 0xc], 0
je 0x10178506
mov ecx, ebx
mov edx, 0x17
push esi
push 0
mov esi, dword [ebp - 0x10]
push dword [esi + 0x3c]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x10178232
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], 1
mov ecx, ebx
mov edx, 0x82
xor eax, eax
push eax
push eax
push dword [esi + 0x3c]
call fcn.1002fb80
add esp, 0xc
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10178264
lea ecx, [eax + eax*4]
mov edx, dword [ebx + 0x68]
lea ecx, [edx + ecx*4]
add ecx, 0xffffffd8
mov dword [ecx + 8], eax
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10178280
lea ecx, [edi + edi*4]
shl ecx, 2
add ecx, dword [ebx + 0x68]
mov dword [ecx + 8], eax
mov edi, dword [ebp - 0x10]
jmp 0x101780fd
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x10], 0x10162660
je 0x101780fd
cmp dword [edi + 0x28], 0
mov dword [ebp - 0x20], edx
je 0x101783b0
mov esi, dword [ebp - 0x14]
mov al, byte [esi + 0x13]
test al, al
je 0x101784f0
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov esi, dword [esi + eax*4 + 0xa0]
mov eax, dword [edi + 0x50]
add eax, edx
mov ecx, ebx
mov edx, 0x5e
push esi
push eax
push dword [ebp + 8]
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, 0x11
push 1
push 0
push esi
call fcn.1002fb80
add esp, 0xc
test esi, esi
mov dword [ebp - 0x2c], eax
je 0x101784fe
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10178317
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0xa0], esi
mov esi, edx
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x10]
cmp byte [edi + 0x60], 0
mov dword [ebp - 0x28], eax
je 0x101783c8
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x14]
mov edx, dword [eax]
mov ecx, esi
mov dword [ebp - 0x20], edx
call fcn.10052fb0
mov ebx, eax
mov eax, dword [edi + 0x48]
mov edx, dword [eax + 0x14]
mov ecx, esi
xor eax, eax
push eax
push eax
mov dword [ebp - 0x28], ebx
push ebx
call fcn.100335e0
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x6c]
cmp ecx, eax
jge 0x101783c2
sub eax, ecx
shl ecx, 2
lea ecx, [ecx + ecx*4]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebx]
mov edx, 0x101f2320
cmp byte [esi + 0x57], 0
jne 0x10178388
mov edx, dword [ebx + 0x68]
add edx, ecx
cmp byte [edx], 0x5e
jne 0x1017839e
mov esi, dword [edx + 4]
mov edi, dword [ebp - 0x24]
cmp esi, dword [edi + 0x30]
jne 0x1017839e
mov esi, dword [ebp + 8]
mov dword [edx + 4], esi
add ecx, 0x14
dec eax
jne 0x10178376
mov esi, dword [ebp - 0x14]
jmp 0x101783c8
mov edx, esi
jmp 0x101780cb
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x14]
jmp 0x1017831f
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
test byte [eax + 4], 0x20
je 0x10178415
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x48]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 8]
mov ecx, esi
call fcn.1002f260
mov esi, eax
test eax, eax
jne 0x101783f2
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov esi, dword [eax + 8]
mov ecx, ebx
mov edx, 0x55
xor eax, eax
push eax
push eax
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, eax
push 0xfffffffffffffffe
push esi
call fcn.1003a120
add esp, 8
mov ecx, ebx
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x10]
push dword [eax + 0x34]
push dword [ebp - 0x28]
push dword [ebp + 0xc]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
je 0x10178449
mov edx, dword [ebp - 0x1c]
test byte [edx + 4], 0x10
mov edi, dword [ebp - 0x10]
je 0x10178461
call fcn.1014c8d0
jmp 0x1017845e
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x13], 0xf9
mov edx, dword [ebp - 0x1c]
mov dword [eax + ecx*4 - 4], edx
mov edi, dword [ebp - 0x10]
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x1017847a
movzx ecx, byte [ebp - 0x20]
mov edx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov word [edx + eax*4 - 0x12], cx
mov edi, dword [ebp - 0x10]
cmp byte [edi + 0x60], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x2c]
je 0x101784c7
cmp eax, 1
jne 0x101784b1
cmp dword [ebp - 0x28], 0
je 0x101784c7
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x101784c7
mov ecx, eax
inc cl
mov esi, dword [ebp - 0x14]
mov byte [esi + 0x13], cl
lea eax, [esi + eax*4]
add eax, 0xa0
jmp 0x101784c2
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x1c], eax
jge 0x101784c7
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
test edx, edx
je 0x101780fd
mov ecx, dword [ebx]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x101784e5
lea eax, [edx + edx*4]
shl eax, 2
add eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x101780fd
mov eax, esi
mov esi, dword [esi + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
jmp 0x101782c5
mov esi, dword [ebp - 0x14]
jmp 0x10178319
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x40]
inc eax
mov ecx, ebx
mov edx, 0x56
xor edi, edi
push edi
push 1
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, 0x51
xor eax, eax
push eax
mov edi, dword [ebp - 0x10]
push dword [edi + 0x40]
push esi
call fcn.1002fb80
add esp, 0xc
mov eax, dword [edi + 0x40]
mov esi, edi
lea ebx, [eax + 2]
mov ecx, dword [ebp - 0x18]
mov edx, 0x61
push ebx
mov ebx, dword [ebp - 0x18]
push 2
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [edi + 0x40]
add eax, 2
mov ecx, ebx
mov edx, 0x8a
xor edi, edi
push edi
push eax
push dword [esi + 0x3c]
mov edi, dword [ebp - 0x1c]
call fcn.1002fb80
add esp, 0xc
jmp 0x10178267
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x78], 0
je 0x1017859e
call fcn.1002f500
mov ebx, eax
jmp 0x1017807c
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x10178592
mov byte [ecx + 0x17], 1
jmp 0x10178592