Function at 0x17fb889
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov ebx, dword [eax + edi + 0x18]
test ebx, ebx
je 0x18d958d
mov edx, dword [eax + edi + 0x20]
dec ebx
add edx, edi
mov dword [ebp + 8], 0
mov dword [ebp - 0xc], edx
test ebx, ebx
jl 0x18d958d
jmp 0x17e70f9
mov eax, dword [ebp + 0xc]
push eax
push edi
mov eax, dword [sym.imp.kernel32.dll_GetProcAddress]
call eax
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edi + 0x24]
lea eax, [edx + esi*2]
movzx ecx, word [eax + edi]
lea edx, [ebx + 1]
mov dword [ebp - 8], ecx
mov dword [ebp + 8], edx
jmp 0x18d957e
pop esi
pop ebx
lea eax, [ecx + edi]
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
lea esi, [ebx + eax]
mov eax, dword [ebp + 0x10]
push eax
sar esi, 1
mov eax, dword [edx + esi*4]
add eax, edi
call fcn.018e126d
add esp, 4
cmp eax, 0xffffffff
je 0x18d957b
test eax, eax
je 0x17db2ee
cmp eax, 1
jne 0x18d957e
inc esi
mov dword [ebp + 8], esi
jmp 0x18d957e
push ebp
mov ebp, esp
sub esp, 0x114
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x17fb8b7
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x17fb8b7
mov eax, 0x5a4d
cmp word [edi], ax
je 0x1816cad
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
cmp byte [esi + 1], 0x23
lea ecx, [esi + 1]
je 0x18df65e
push 0
push ecx
push eax
call fcn.017fb889
add esp, 0xc
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x3c]
add edx, edi
cmp dword [edx], 0x4550
jne 0x17fb8b7
mov eax, dword [edx + 0x78]
mov dword [ebp - 4], eax
test eax, eax
je 0x17fb8b7
mov edx, dword [edx + 0x7c]
push ebx
push esi
or esi, 0xffffffff
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], esi
cmp ecx, 0xffff
ja 0x1320a8e
sub ecx, dword [eax + edi + 0x10]
cmp ecx, dword [eax + edi + 0x14]
jae 0x18d95e4
mov edx, dword [eax + edi + 0x1c]
lea ecx, [edx + ecx*4]
mov ecx, dword [ecx + edi]
test ecx, ecx
jne 0x18d95a9
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
lea ebx, [esi - 1]
cmp dword [ebp + 8], ebx
jle 0x17e70f3
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 8]
cmp esi, dword [eax + edi + 0x14]
jae 0x18d95e4
mov ecx, dword [eax + edi + 0x1c]
lea edx, [ecx + esi*4]
mov ecx, dword [edx + edi]
test ecx, ecx
je 0x18d95e4
cmp ecx, eax
jb 0x17e27e4
mov edx, dword [ebp - 0x10]
add edx, eax
cmp ecx, edx
jae 0x17e27e4
lea eax, [ecx + edi]
mov cl, byte [eax]
mov esi, eax
test cl, cl
je 0x18d95e4
mov edi, edi
cmp cl, 0x2e
je 0x18f1c22
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x18d95cf
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
mov cl, byte [esi + 2]
add esi, 2
xor edx, edx
test cl, cl
je 0x18df691
mov bl, cl
sub bl, 0x30
inc esi
cmp bl, 9
ja 0x18df691
movsx ecx, cl
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2 - 0x30]
mov cl, byte [esi]
test cl, cl
jne 0x18df66e
push 0
push edx
push eax
call fcn.017fb889
add esp, 0xc
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, esi
sub ecx, eax
cmp ecx, 0x104
jae 0x18d95e4
mov dword [ebp + 8], 0
test ecx, ecx
jbe 0x18f1c66
lea ebx, [ebp - 0x114]
sub ebx, eax
mov dl, byte [eax]
test dl, dl
je 0x18f1c66
mov byte [ebx + eax], dl
mov edx, dword [ebp + 8]
inc edx
inc eax
mov dword [ebp + 8], edx
cmp edx, ecx
jb 0x18f1c49
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x114]
push ecx
mov byte [ebp + eax - 0x114], 0
mov eax, dword [sym.imp.kernel32.dll_GetModuleHandleA]
call eax
test eax, eax
jne 0x18f1c9d
lea edx, [ebp - 0x114]
push edx
mov eax, dword [sym.imp.kernel32.dll_LoadLibraryA]
call eax
test eax, eax
je 0x18d95e4
cmp eax, edi
jne 0x1812d96
cmp byte [ebp + 0x10], 0
je 0x17c722f
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x114]
xor edx, edx
sub ebx, eax
mov edi, edi
mov eax, 0x2e9e2a48
mov cl, dl
rol eax, cl
lea esi, [ebp + edx - 0x114]
add al, dl
xor al, byte [ebx + esi]
mov byte [esi], al
je 0x18f1ce8
inc edx
cmp edx, 0x104
jb 0x18f1cbe
lea eax, [ebp - 0x114]
push eax
push edi
mov eax, dword [sym.imp.kernel32.dll_GetProcAddress]
call eax
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret