Function at 0x10178ba0
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 0x101790c9
cmp dword [ebp - 0x24], 0
je 0x101790c1
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 0x10178c49
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x58], 0
je 0x10178d05
mov eax, dword [edi + 0x40]
test eax, eax
je 0x10178dcb
add eax, dword [ebp - 0x40]
mov ecx, ebx
mov edx, 0x56
push 0
push 1
push eax
call fcn.10030110
mov edi, dword [ebp - 0x10]
add esp, 0xc
mov edi, dword [edi + 0x24]
test edi, edi
jne 0x10178bf7
jmp 0x101790c1
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10178c0b
mov esi, dword [eax]
test esi, esi
jle 0x10178ee9
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.10030110
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add esp, 0xc
xor edx, edx
inc edx
cmp esi, 1
je 0x10178c0b
mov dword [ebp - 0x20], esi
mov eax, dword [edi + 0x50]
inc eax
mov edx, dword [ebp - 0x1c]
cmp dword [edx + 0x20], 0x101b66c8
mov ebx, ecx
jne 0x10178ca1
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.10030110
add esp, 0xc
mov edx, 2
mov esi, dword [ebp - 0x20]
cmp esi, 2
mov edi, dword [ebp - 0x10]
je 0x10178c0b
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.10030110
mov edi, dword [ebp - 0x10]
add esp, 0xc
inc ebx
cmp esi, ebx
jne 0x10178cd1
mov edx, esi
mov ebx, dword [ebp - 0x18]
jmp 0x10178c0b
mov eax, dword [ebp - 0x1c]
test byte [eax + 5], 0x10
je 0x10178c18
cmp byte [edi + 0x11], 0x5a
je 0x10178c18
mov ecx, ebx
mov edx, 0x32
xor eax, eax
push eax
push eax
mov esi, dword [ebp + 0x10]
push esi
call fcn.10030110
add esp, 0xc
mov edi, eax
cmp dword [ebp + 0xc], 0
je 0x10179046
mov ecx, ebx
mov edx, 0x17
push esi
push 0
mov esi, dword [ebp - 0x10]
push dword [esi + 0x3c]
call fcn.10030110
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x10178d72
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.10030110
add esp, 0xc
mov edx, dword [ebx]
mov eax, dword [ebx + 0x6c]
mov ecx, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x10178da4
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, 0x101f4350
cmp byte [edx + 0x57], 0
jne 0x10178dc0
lea ecx, [edi + edi*4]
shl ecx, 2
add ecx, dword [ebx + 0x68]
mov dword [ecx + 8], eax
mov edi, dword [ebp - 0x10]
jmp 0x10178c3d
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x10], 0x101633a0
je 0x10178c3d
cmp dword [edi + 0x28], 0
mov dword [ebp - 0x20], edx
je 0x10178ef0
mov esi, dword [ebp - 0x14]
mov al, byte [esi + 0x13]
test al, al
je 0x10179030
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.10030110
add esp, 0xc
mov ecx, ebx
mov edx, 0x11
push 1
push 0
push esi
call fcn.10030110
add esp, 0xc
test esi, esi
mov dword [ebp - 0x2c], eax
je 0x1017903e
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10178e57
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 0x10178f08
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.10057c40
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.10033b80
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x6c]
cmp ecx, eax
jge 0x10178f02
sub eax, ecx
shl ecx, 2
lea ecx, [ecx + ecx*4]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebx]
mov edx, 0x101f4350
cmp byte [esi + 0x57], 0
jne 0x10178ec8
mov edx, dword [ebx + 0x68]
add edx, ecx
cmp byte [edx], 0x5e
jne 0x10178ede
mov esi, dword [edx + 4]
mov edi, dword [ebp - 0x24]
cmp esi, dword [edi + 0x30]
jne 0x10178ede
mov esi, dword [ebp + 8]
mov dword [edx + 4], esi
add ecx, 0x14
dec eax
jne 0x10178eb6
mov esi, dword [ebp - 0x14]
jmp 0x10178f08
mov edx, esi
jmp 0x10178c0b
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x14]
jmp 0x10178e5f
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
test byte [eax + 4], 0x20
je 0x10178f55
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.1002f7f0
mov esi, eax
test eax, eax
jne 0x10178f32
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.10030110
add esp, 0xc
mov ecx, ebx
mov edx, eax
push 0xfffffffffffffffe
push esi
call fcn.1003a6c0
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.10030110
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
je 0x10178f89
mov edx, dword [ebp - 0x1c]
test byte [edx + 4], 0x10
mov edi, dword [ebp - 0x10]
je 0x10178fa1
call fcn.1014f290
jmp 0x10178f9e
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 0x10178fba
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 0x10179007
cmp eax, 1
jne 0x10178ff1
cmp dword [ebp - 0x28], 0
je 0x10179007
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x10179007
mov ecx, eax
inc cl
mov esi, dword [ebp - 0x14]
mov byte [esi + 0x13], cl
lea eax, [esi + eax*4]
add eax, 0xa0
jmp 0x10179002
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x1c], eax
jge 0x10179007
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 0x10178c3d
mov ecx, dword [ebx]
mov eax, 0x101f4350
cmp byte [ecx + 0x57], 0
jne 0x10179025
lea eax, [edx + edx*4]
shl eax, 2
add eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x10178c3d
mov eax, esi
mov esi, dword [esi + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
jmp 0x10178e05
mov esi, dword [ebp - 0x14]
jmp 0x10178e59
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.10030110
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.10030110
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.10030110
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.10030110
add esp, 0xc
jmp 0x10178da7
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0x78], 0
je 0x101790de
call fcn.1002fa90
mov ebx, eax
jmp 0x10178bbc
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x101790d2
mov byte [ecx + 0x17], 1
jmp 0x101790d2