Function at 0x4177f0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov ecx, dword [esp + 8]
sub esp, 0x7c
push ebx
push ebp
push esi
xor ebp, ebp
cmp ecx, 0x40
push edi
jb 0x4179bb
mov eax, dword [esp + 0x90]
cmp word [eax], 0x5a4d
jne 0x4179bb
mov ebx, dword [eax + 0x3c]
lea edx, [ebx + 0xf8]
cmp ecx, edx
jb 0x4179bb
add ebx, eax
cmp dword [ebx], 0x4550
jne 0x4179bb
cmp word [ebx + 4], 0x14c
jne 0x4179bb
mov edx, dword [ebx + 0x38]
test dl, 1
jne 0x4179bb
movzx eax, word [ebx + 0x14]
lea esi, [eax + ebx + 0x18]
movzx eax, word [ebx + 6]
test eax, eax
jbe 0x417881
add esi, 0xc
mov edi, eax
mov ecx, dword [esi + 4]
test ecx, ecx
mov eax, dword [esi]
jne 0x417871
add eax, edx
jmp 0x417873
add eax, ecx
cmp eax, ebp
jbe 0x417879
mov ebp, eax
add esi, 0x28
sub edi, 1
jne 0x417864
lea ecx, [esp + 0x14]
push ecx
call fcn.004016e0
mov esi, 0x10
add esp, 4
cmp dword [eax + 0x18], esi
jb 0x41789d
mov eax, dword [eax + 4]
jmp 0x4178a0
add eax, 4
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
lea ecx, [esp + 0x14]
mov edi, eax
call fcn.0043dd10
lea edx, [esp + 0x30]
push edx
call fcn.00414c00
add esp, 4
cmp dword [eax + 0x18], esi
jb 0x4178c9
mov eax, dword [eax + 4]
jmp 0x4178cc
add eax, 4
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
lea ecx, [esp + 0x30]
mov esi, eax
call fcn.0043dd10
lea eax, [esp + 0x68]
push eax
call esi
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebx + 0x50]
lea eax, [ecx - 1]
lea esi, [edx + ecx - 1]
not eax
lea ecx, [ecx + ebp - 1]
and esi, eax
and ecx, eax
cmp esi, ecx
jne 0x4179bb
mov edx, dword [ebx + 0x34]
push 0
push 4
push 0x3000
push esi
push edx
call fcn.00417630
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x41793e
push eax
push 4
push 0x3000
push esi
push eax
call fcn.00417630
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x4179bb
lea eax, [esp + 0x30]
push eax
call fcn.00415660
add esp, 4
cmp dword [eax + 0x18], 0x10
jb 0x417956
mov eax, dword [eax + 4]
jmp 0x417959
add eax, 4
mov esi, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
push edi
call esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], eax
call fcn.0043dd10
lea ecx, [esp + 0x4c]
push ecx
call fcn.00415d90
add esp, 4
cmp dword [eax + 0x18], 0x10
jb 0x417988
mov eax, dword [eax + 4]
jmp 0x41798b
add eax, 4
push eax
push edi
call esi
lea ecx, [esp + 0x4c]
mov esi, eax
call fcn.0043dd10
push 0x40
push 8
call esi
push eax
call dword [esp + 0x1c]
mov esi, eax
test esi, esi
jne 0x4179c5
push eax
push 0x8000
push eax
push ebp
call fcn.004176f0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov dword [esi + 4], ebp
movzx edx, word [ebx + 0x16]
shr edx, 0xd
and edx, 1
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], fcn.00417630
mov dword [esi + 0x20], fcn.004176f0
mov dword [esi + 0x24], 0x4177b0
mov dword [esi + 0x28], 0x4177c0
mov dword [esi + 0x2c], 0x4177e0
mov dword [esi + 0x34], 0
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x3c], eax
mov eax, dword [ebx + 0x54]
cmp dword [esp + 0x94], eax
jb 0x417ac7
push 0
push 4
push 0x1000
push eax
push ebp
call fcn.00417630
mov ecx, dword [ebx + 0x54]
mov edx, dword [esp + 0xa4]
add esp, 0x14
push ecx
mov edi, eax
push edx
push edi
call fcn.0045fc90
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x3c]
mov edx, dword [esp + 0xa0]
add esp, 0xc
add edi, ecx
push ebx
mov dword [esi], edi
push edx
mov dword [edi + 0x34], ebp
push eax
mov edi, esi
call fcn.00417060
add esp, 0xc
test eax, eax
je 0x417ac7
mov eax, dword [esi]
mov eax, dword [eax + 0x34]
sub eax, dword [ebx + 0x34]
je 0x417a83
push eax
mov eax, esi
call fcn.00417430
add esp, 4
mov dword [esi + 0x18], eax
jmp 0x417a8a
mov dword [esi + 0x18], 1
call fcn.004174c0
test eax, eax
je 0x417ac7
push esi
call fcn.00417290
add esp, 4
test eax, eax
je 0x417ac7
mov eax, esi
call fcn.004173f0
test eax, eax
je 0x417ac7
mov ecx, dword [esi]
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x417af4
add eax, ebp
cmp dword [esi + 0x14], 0
je 0x417ae7
push 0
push 1
push ebp
call eax
test eax, eax
jne 0x417ad6
call fcn.00417c70
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov dword [esi + 0x10], 1
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov dword [esi + 0x38], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
pop edi
mov dword [esi + 0x38], 0
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret