Function at 0x51e053
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
cmp esi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
je 0x51e45d
push dword [ebp + 0x14]
lea eax, [ebp - 0x20]
mov edx, esi
call fcn.0051d219
test al, al
je 0x51e45d
mov eax, dword [ebp - 0x20]
add eax, esi
cmp dword [ebp + 0x14], 0x10
mov dword [ebp - 8], eax
jb 0x51e45d
mov eax, dword [esi + 0xc]
bswap eax
mov dword [esi + 0xc], eax
add esi, 0x10
cmp eax, edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edi
jle 0x51e45d
jmp 0x51e0b6
mov esi, dword [ebp - 0xc]
xor edi, edi
mov edx, dword [ebp - 8]
sub edx, esi
cmp edx, 0x10
mov dword [ebp - 0x14], edx
jb 0x51e45d
mov eax, dword [esi]
bswap eax
mov dword [esi], eax
mov eax, dword [esi + 4]
bswap eax
mov dword [esi + 4], eax
lea ebx, [esi + 8]
mov ax, word [ebx + 6]
mov ch, al
mov dword [ebp - 4], edi
mov dword [ebp + 0x14], edi
mov cl, ah
mov word [ebx + 6], cx
mov eax, dword [esi + 4]
mov ecx, 0x6d6a7061
cmp eax, ecx
ja 0x51e171
je 0x51e15c
mov ecx, 0x68657631
cmp eax, ecx
ja 0x51e147
je 0x51e168
cmp eax, 0x2e6d7033
je 0x51e13b
cmp eax, 0x61632d33
je 0x51e123
cmp eax, 0x61766331
je 0x51e12f
cmp eax, 0x65632d33
jne 0x51e1e9
mov dword [ebp + 0x14], 8
jmp 0x51e1e9
mov dword [ebp - 4], 1
jmp 0x51e1e9
mov dword [ebp + 0x14], 1
jmp 0x51e1e9
cmp eax, 0x68766331
je 0x51e168
cmp eax, 0x6a706567
je 0x51e15c
cmp eax, 0x6c70636d
jmp 0x51e194
mov dword [ebp - 4], 9
jmp 0x51e1e9
mov dword [ebp - 4], 0x14
jmp 0x51e1e9
mov ecx, 0x73323633
cmp eax, ecx
ja 0x51e1ba
je 0x51e1b1
sub eax, 0x6d6a7062
je 0x51e15c
sub eax, 0x5c3ff
je 0x51e1a8
sub eax, 0x15
je 0x51e19f
sub eax, 0x4f142aa
jne 0x51e1e9
mov dword [ebp + 0x14], 6
jmp 0x51e1e9
mov dword [ebp - 4], 0xb
jmp 0x51e1e9
mov dword [ebp + 0x14], 2
jmp 0x51e1e9
mov dword [ebp - 4], 0x17
jmp 0x51e1e9
cmp eax, 0x73616d72
je 0x51e1e2
cmp eax, 0x736f7774
je 0x51e196
cmp eax, 0x74776f73
jne 0x51e1e9
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x14], 6
mov byte [eax + 0x135], 1
jmp 0x51e1e9
mov dword [ebp + 0x14], 9
push edx
lea eax, [ebp - 0x20]
mov edx, esi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
call fcn.0051d219
test al, al
je 0x51e45d
mov esi, dword [ebp - 0x1c]
xor eax, eax
cmp eax, esi
jb 0x51e45d
ja 0x51e21d
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x20]
jb 0x51e45d
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0xac]
cmp eax, 0x68696e74
je 0x51e3f2
cmp eax, 0x736f756e
je 0x51e2c3
cmp eax, 0x74657874
je 0x51e2b2
cmp eax, 0x76696465
jne 0x51e413
mov eax, dword [ebp - 4]
mov dword [ecx + 0x13c], eax
mov eax, ebx
call fcn.0051f982
movzx eax, word [ebx + 0x18]
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x12c], eax
movzx eax, word [ebx + 0x1a]
mov dword [esi + 0x130], eax
mov eax, dword [ebx + 0x20]
add esi, 0x134
mov dword [esi], eax
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x138], eax
call fcn.0051a523
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
add eax, 0xffffffaa
adc ecx, 0xffffffff
mov dword [ebp - 0x14], ecx
jne 0x51e2aa
test eax, eax
jbe 0x51e413
lea edi, [ebx + 0x4e]
jmp 0x51e413
mov ax, word [ebx + 6]
mov ch, al
mov cl, ah
mov word [ebx + 6], cx
jmp 0x51e413
mov eax, dword [ebp + 0x14]
mov dword [ecx + 0x136], eax
mov eax, ebx
call fcn.0051f9f8
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x38], eax
je 0x51e2f9
cmp eax, 0x736f756e
jne 0x51e2f4
cmp dword [edx + 0x9c], 0
je 0x51e2f9
cmp eax, 0xffffffff
jne 0x51e316
movzx eax, word [ebx + 0x1a]
mov dword [ecx + 0x12c], eax
mov al, byte [ebx + 0x10]
mov byte [ecx + 0x130], al
movzx eax, word [ebx + 0x12]
mov dword [ecx + 0x131], eax
mov eax, dword [ebp - 0x20]
add eax, 0xffffffdc
adc esi, 0xffffffff
mov dword [ebp - 0x14], esi
jne 0x51e328
test eax, eax
jbe 0x51e32b
lea edi, [ebx + 0x1c]
movzx eax, word [ebx + 8]
cmp ax, 1
jne 0x51e345
test edi, edi
je 0x51e45d
add edi, 0x10
jmp 0x51e413
cmp ax, 2
jne 0x51e413
test edi, edi
je 0x51e45d
mov eax, dword [edi]
bswap eax
mov dword [edi], eax
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
bswap eax
mov dword [edi + 8], eax
mov esi, dword [ebp + 0xc]
bswap ecx
mov dword [edi + 4], ecx
mov eax, dword [edi + 0xc]
bswap eax
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x14]
bswap eax
mov dword [edi + 0x14], eax
lea ebx, [edi + 0x18]
mov eax, dword [ebx]
bswap eax
mov dword [ebx], eax
mov eax, dword [edi + 0x1c]
bswap eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x20]
bswap eax
mov dword [edi + 0x20], eax
mov eax, dword [edx + 0xa0]
cmp dword [esi + 0x38], eax
je 0x51e3b9
cmp eax, 0x736f756e
jne 0x51e3b4
cmp dword [edx + 0x9c], 0
je 0x51e3b9
cmp eax, 0xffffffff
jne 0x51e3d9
fld qword [edi + 4]
call fcn.005a6560
mov dword [esi + 0x12c], eax
mov al, byte [edi + 0xc]
mov byte [esi + 0x130], al
mov eax, dword [edi + 0x14]
mov dword [esi + 0x131], eax
add edi, 0x24
cmp dword [ebp + 0x14], 6
jne 0x51e413
test byte [ebx], 2
je 0x51e413
mov eax, esi
mov byte [eax + 0x135], 1
jmp 0x51e413
mov ax, word [ebx + 6]
mov ch, al
mov cl, ah
mov eax, dword [ebp - 0x20]
add eax, 0xffffffef
adc esi, 0xffffffff
mov dword [ebp - 0x14], esi
mov word [ebx + 6], cx
jne 0x51e410
test eax, eax
jbe 0x51e413
lea edi, [ebx + 9]
mov eax, dword [ebp - 0x20]
add dword [ebp - 0xc], eax
test edi, edi
je 0x51e44b
cmp dword [ebp - 8], edi
jb 0x51e45d
lea eax, [edi + 8]
cmp dword [ebp - 8], eax
jb 0x51e44b
mov eax, dword [edi]
mov ecx, dword [ebp + 8]
bswap eax
mov dword [edi], eax
mov eax, dword [edi + 4]
bswap eax
mov dword [edi + 4], eax
mov eax, dword [ebp - 8]
sub eax, edi
push eax
push dword [ebp + 0xc]
mov eax, edi
call fcn.0051e543
inc dword [ebp - 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [eax + 0xc]
jl 0x51e0b1
pop edi
pop esi
pop ebx
leave
ret 0x10