Function at 0x549730
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x18]
push esi
mov esi, ecx
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov ebx, dword [esi + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x7c]
test eax, eax
push edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
je 0x5497e7
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, 0x4e
je 0x549778
cmp ecx, 0x4d
jne 0x5497bd
test byte [esi + 0x127], 0x40
je 0x5497e7
mov dl, byte [eax + 4]
mov edi, dword [esp + 0x10]
xor ecx, ecx
test dl, dl
setne cl
xor edx, edx
add ebx, ecx
mov cl, byte [eax + 5]
test cl, cl
setne dl
xor ecx, ecx
add edi, edx
mov dl, byte [eax + 6]
test dl, dl
mov edx, dword [esp + 0x14]
setne cl
add edx, ecx
mov cl, byte [eax + 7]
mov dword [esp + 0x14], edx
xor edx, edx
test cl, cl
setne dl
jmp 0x5497d9
movzx ecx, byte [eax + 4]
movzx edx, byte [eax + 5]
mov edi, dword [esp + 0x10]
add ebx, ecx
movzx ecx, byte [eax + 6]
add edi, edx
add dword [esp + 0x14], ecx
movzx edx, byte [eax + 7]
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + 0x84]
test eax, eax
mov al, byte [esi + 0x125]
je 0x54984b
mov edi, dword [esp + 0x28]
mov edx, dword [edi]
test al, 1
mov eax, dword [esi + 0x80]
push eax
push ecx
je 0x54982d
sub edx, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push edx
push ecx
mov ecx, ebp
call fcn.00518e50
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
sub eax, edx
jmp 0x549899
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push edx
push ecx
mov ecx, ebp
call fcn.00518e50
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
add eax, edx
jmp 0x549899
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test al, 1
mov eax, dword [esi + 0x80]
push eax
push ecx
je 0x54987b
mov ecx, dword [edx]
mov edx, dword [edi]
sub ecx, eax
push ecx
push edx
mov ecx, ebp
call fcn.00518e50
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x84]
add dword [edi], eax
jmp 0x54989b
mov edx, dword [edx]
sub edx, eax
mov eax, dword [edi]
sub eax, ecx
push edx
push eax
mov ecx, ebp
call fcn.00518e50
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
sub eax, ecx
mov dword [edi], eax
mov ecx, dword [esi + 0x44]
mov dx, word [esp + 0x10]
mov ax, word [esp + 0x14]
mov word [ecx + 0x26], dx
mov dx, word [esp + 0x18]
mov word [ecx + 0x24], bx
mov word [ecx + 0x28], ax
mov word [ecx + 0x2a], dx
call fcn.00516ff0
mov ebx, dword [esi + 0xa0]
test ebx, ebx
jle 0x5499d2
mov eax, dword [esi + 0x44]
movsx ecx, word [eax + 0x2a]
mov edx, dword [eax + 0x1c]
movsx edi, word [eax + 0x24]
sub edx, ecx
movsx ecx, word [eax + 0x28]
sub edx, ecx
mov ecx, dword [eax + 0x20]
sub ecx, edi
mov edi, dword [eax + 0x18]
push ebx
add ecx, edi
movsx edi, word [eax + 0x28]
add edi, dword [eax + 0x14]
push edx
sub ecx, dword [esi + 0xa4]
sub ecx, ebx
push ecx
push edi
mov ecx, ebp
call fcn.00518e50
mov edx, dword [esi + 0x98]
test edx, edx
mov dword [esi + 0x48], eax
jle 0x549995
movsx edi, word [eax + 0x2a]
mov ecx, dword [eax + 0x1c]
movsx ebx, word [eax + 0x24]
sub ecx, edi
movsx edi, word [eax + 0x28]
sub ecx, edi
mov edi, dword [eax + 0x20]
sub edi, ebx
add edi, dword [eax + 0x18]
movsx ebx, word [eax + 0x28]
add ebx, dword [eax + 0x14]
mov eax, edx
cdq
sub eax, edx
mov edx, dword [esi + 0x9c]
sar eax, 1
push eax
push ecx
add edx, edi
push edx
push ebx
mov ecx, ebp
call fcn.00518e50
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x48]
movsx ecx, word [eax + 0x2a]
mov edi, dword [eax + 0x1c]
movsx edx, word [eax + 0x28]
mov ebx, dword [eax + 0x18]
sub edi, ecx
movsx ecx, word [eax + 0x26]
add ecx, ebx
movsx ebx, word [eax + 0x28]
sub edi, edx
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x98]
add ebx, edx
cdq
sub eax, edx
sar eax, 1
push eax
push edi
sub ecx, eax
push ecx
push ebx
mov ecx, ebp
call fcn.00518e50
mov dword [esi + 0x50], eax
mov ebx, dword [esi + 0x9c]
test ebx, ebx
jle 0x5499d2
mov eax, dword [esi + 0x48]
movsx edx, word [eax + 0x2a]
mov ecx, dword [eax + 0x1c]
movsx edi, word [eax + 0x24]
sub ecx, edx
movsx edx, word [eax + 0x28]
sub ecx, edx
mov edx, dword [eax + 0x20]
sub edx, edi
add edx, dword [eax + 0x18]
movsx edi, word [eax + 0x28]
add edi, dword [eax + 0x14]
push ebx
push ecx
push edx
push edi
mov ecx, ebp
call fcn.00518e50
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x64]
test eax, eax
jne 0x549b8b
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x549b8b
test byte [esi + 0x125], 2
mov eax, dword [esi + 0x44]
je 0x549ac9
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x28], edx
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
sub edi, edx
add edi, dword [eax + 0x18]
mov dword [esp + 0x24], edi
mov edi, dword [ecx]
test edi, edi
je 0x549a5b
lea esp, [esp]
mov al, byte [edi + 0x125]
test al, 1
je 0x549a5b
test al, 8
jne 0x549a4e
xor eax, eax
mov al, byte [esi + 0x125]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x28]
shr eax, 1
and eax, 1
push eax
push ecx
push edx
push ebp
mov ecx, edi
call fcn.00549730
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549a20
mov eax, dword [esi + 0x44]
movsx ecx, word [eax + 0x26]
add ecx, dword [eax + 0x18]
mov edx, dword [esi + 0x58]
mov dword [esp + 0x20], ecx
mov edi, dword [edx + 4]
test edi, edi
je 0x549b8b
jmp 0x549a80
mov al, byte [edi + 0x125]
test al, 1
jne 0x549b8b
test al, 8
jne 0x549ab2
xor eax, eax
mov al, byte [esi + 0x125]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x28]
shr eax, 1
and eax, 1
push eax
push ecx
push edx
push ebp
mov ecx, edi
call fcn.00549730
mov ecx, edi
call fcn.004ecf10
mov edi, eax
test edi, edi
jne 0x549a80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x18]
sub edi, edx
add edi, ebx
mov dword [esp + 0x28], edi
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x24], edx
mov edi, dword [ecx]
test edi, edi
je 0x549b2b
lea esp, [esp]
mov al, byte [edi + 0x125]
test al, 1
je 0x549b2b
test al, 8
jne 0x549b1e
xor eax, eax
mov al, byte [esi + 0x125]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x24]
shr eax, 1
and eax, 1
push eax
push ecx
push edx
push ebp
mov ecx, edi
call fcn.00549730
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549af0
mov eax, dword [esi + 0x44]
movsx ecx, word [eax + 0x2a]
mov edx, dword [eax + 0x1c]
sub edx, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x58]
add edx, ecx
mov dword [esp + 0x20], edx
mov edi, dword [eax + 4]
test edi, edi
je 0x549b8b
lea ebx, [ebx]
mov al, byte [edi + 0x125]
test al, 1
jne 0x549b8b
test al, 8
jne 0x549b7e
xor ecx, ecx
mov cl, byte [esi + 0x125]
lea edx, [esp + 0x28]
lea eax, [esp + 0x20]
shr ecx, 1
and ecx, 1
push ecx
push edx
push eax
push ebp
mov ecx, edi
call fcn.00549730
mov ecx, edi
call fcn.004ecf10
mov edi, eax
test edi, edi
jne 0x549b50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10