Function at 0x401d25
Capabilities:
Enumerate pe sections
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
and dword [ebp - 0x14], 0
push ebx
push esi
mov esi, dword [eax + 0x3c]
add esi, eax
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 0x34]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x28]
push edi
mov edi, dword [esi + 0x54]
mov dword [ebp - 0x20], eax
push 1
push 0x2000
push dword [ebp - 0xc]
push ebx
call dword [ebp + 0xc]
add ebx, 0x10000
test eax, eax
mov dword [ebp - 4], eax
je 0x401d4c
push 4
push 0x1000
push edi
push eax
call dword [ebp + 0xc]
test edi, edi
jbe 0x401d8c
mov edx, dword [ebp + 8]
mov ecx, eax
sub edx, eax
mov dword [ebp - 0xc], edi
mov bl, byte [edx + ecx]
mov byte [ecx], bl
inc ecx
dec dword [ebp - 0xc]
jne 0x401d81
lea ecx, [ebp - 0x1c]
push ecx
push 2
push edi
push eax
call dword [ebp + 0x10]
movzx eax, word [esi + 0x14]
and dword [ebp - 0xc], 0
cmp word [esi + 6], 0
lea edi, [eax + esi + 0x18]
mov dword [ebp - 0x18], edi
jbe 0x401e0a
add edi, 8
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp ecx, eax
mov dword [ebp - 8], eax
ja 0x401dbf
mov dword [ebp - 8], ecx
push 4
push 0x1000
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 4]
push eax
call dword [ebp + 0xc]
xor ecx, ecx
cmp dword [edi], ecx
jbe 0x401de0
mov byte [ecx + eax], 0
inc ecx
cmp ecx, dword [edi]
jb 0x401dd7
xor ecx, ecx
cmp dword [ebp - 8], ecx
jbe 0x401dfb
mov edx, dword [edi + 0xc]
mov ebx, dword [ebp + 8]
add edx, ecx
mov dl, byte [edx + ebx]
mov byte [ecx + eax], dl
inc ecx
cmp ecx, dword [ebp - 8]
jb 0x401de7
movzx eax, word [esi + 6]
add edi, 0x28
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
jl 0x401db0
mov eax, dword [ebp - 4]
sub eax, dword [esi + 0x34]
and dword [ebp - 0xc], 0
lea ecx, [esi + 0xa0]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx]
add eax, dword [ebp - 4]
add edx, eax
cmp eax, edx
mov dword [ebp + 8], edx
jae 0x401eac
mov edi, dword [eax + 4]
test edi, edi
jbe 0x401eac
mov ecx, dword [eax]
add ecx, dword [ebp - 4]
and dword [ebp + 0xc], 0
add edi, 0xfffffff8
shr edi, 1
test edi, edi
lea ebx, [eax + 8]
jbe 0x401e9e
movzx edx, word [ebx]
and edx, 0xfff
movsx eax, dx
movzx edx, word [ebx]
movzx edx, dx
shr edx, 0xc
add eax, ecx
sub edx, 0
je 0x401e8e
dec edx
je 0x401e7f
dec edx
je 0x401e76
dec edx
jne 0x401e9b
mov edx, dword [ebp - 0x10]
add dword [eax], edx
jmp 0x401e8e
mov dx, word [ebp - 0x10]
add word [eax], dx
jmp 0x401e8e
movzx edx, word [eax]
shl edx, 0x10
add edx, dword [ebp - 0x10]
shr edx, 0x10
mov word [eax], dx
inc ebx
inc ebx
inc dword [ebp + 0xc]
movzx eax, word [ebp + 0xc]
cmp eax, edi
jb 0x401e4a
mov edx, dword [ebp + 8]
test ebx, ebx
mov eax, ebx
je 0x401fac
cmp ebx, edx
jb 0x401e2e
mov ebx, dword [esi + 0x80]
mov edi, dword [ebp - 4]
add ebx, edi
jmp 0x401f04
add eax, edi
push eax
call dword [ebp + 0x18]
test eax, eax
mov dword [ebp + 0xc], eax
je 0x401fac
cmp dword [ebx + 4], 0
jne 0x401ed5
mov edi, dword [ebx + 0x10]
jmp 0x401ed7
mov edi, dword [ebx]
add edi, dword [ebp - 4]
jmp 0x401ef9
mov eax, dword [edi]
test eax, eax
jns 0x401ee6
push 1
jmp 0x401eee
mov ecx, dword [ebp - 4]
lea eax, [eax + ecx + 2]
push eax
push dword [ebp + 0xc]
call dword [ebp + 0x1c]
mov dword [edi], eax
add edi, 4
cmp dword [edi], 0
jne 0x401edc
mov edi, dword [ebp - 4]
add ebx, 0x14
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x401eb9
and dword [ebp + 0xc], eax
cmp word [esi + 6], ax
jbe 0x401f9c
mov ebx, dword [ebp - 0x18]
add ebx, 8
mov eax, dword [ebx + 0x1c]
xor ecx, ecx
test eax, 0x4000000
je 0x401f2f
mov ecx, 0x200
test eax, 0x20000000
je 0x401f5c
test eax, 0x40000000
je 0x401f4b
test eax, eax
jns 0x401f46
or ecx, 0x40
jmp 0x401f7d
or ecx, 0x20
jmp 0x401f7d
test eax, eax
jns 0x401f57
or ecx, 0x80
jmp 0x401f7d
or ecx, 0x10
jmp 0x401f7d
test eax, 0x40000000
je 0x401f71
test eax, eax
jns 0x401f6c
or ecx, 4
jmp 0x401f7d
or ecx, 2
jmp 0x401f7d
test eax, eax
js 0x401f7a
or ecx, 8
jmp 0x401f7d
or ecx, 1
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebx + 4]
push ecx
push dword [ebx]
add eax, edi
push eax
call dword [ebp + 0x10]
movzx eax, word [esi + 6]
inc dword [ebp + 0xc]
add ebx, 0x28
cmp dword [ebp + 0xc], eax
jl 0x401f1e
push dword [ebp + 0x20]
mov eax, dword [ebp - 0x20]
push 1
push edi
add eax, edi
call eax
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x1c