Function at 0x549ba0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
mov ebp, dword [esi + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x7c]
test eax, eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1c]
push edi
mov dword [esp + 0x14], ecx
je 0x549c6b
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, 0x4e
je 0x549bec
cmp ecx, 0x4d
jne 0x549c3b
test byte [esi + 0x127], 0x40
je 0x549c6b
mov bl, byte [eax + 4]
xor ecx, ecx
mov edi, dword [esp + 0x10]
test bl, bl
mov bl, byte [eax + 5]
setne cl
add ebp, ecx
xor ecx, ecx
test bl, bl
mov bl, byte [eax + 6]
setne cl
add edi, ecx
xor ecx, ecx
test bl, bl
mov bl, byte [eax + 7]
mov eax, dword [esp + 0x18]
setne cl
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
add edi, ecx
xor ecx, ecx
test bl, bl
setne cl
add eax, ecx
mov dword [esp + 0x18], eax
jmp 0x549c67
movzx ecx, byte [eax + 4]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add ebp, ecx
movzx ecx, byte [eax + 5]
add ebx, ecx
movzx ecx, byte [eax + 6]
movzx eax, byte [eax + 7]
add edi, ecx
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
test eax, eax
mov al, byte [esi + 0x125]
je 0x549ce5
mov ebx, dword [esp + 0x28]
test al, 1
mov eax, dword [esi + 0x80]
je 0x549cbb
lea ecx, [eax + edi]
push ecx
mov ecx, dword [esi + 0x84]
push ecx
mov ecx, dword [ebx]
sub ecx, eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [eax]
push ecx
mov ecx, edx
call fcn.00518e50
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
sub eax, edx
jmp 0x549d51
mov ecx, dword [esi + 0x84]
add eax, edi
push eax
mov eax, dword [ebx]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [ecx]
push eax
mov ecx, edx
call fcn.00518e50
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
add eax, ecx
jmp 0x549d51
test al, 1
mov eax, dword [esi + 0x80]
je 0x549d20
mov ebx, dword [esp + 0x24]
lea ecx, [eax + edi]
push ecx
mov ecx, dword [esi + 0x84]
push ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
sub ecx, eax
mov eax, dword [ebx]
push ecx
push eax
mov ecx, edx
call fcn.00518e50
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
add eax, ecx
jmp 0x549d51
mov ecx, dword [esi + 0x84]
lea ebx, [eax + edi]
push ebx
mov ebx, dword [esp + 0x2c]
mov ebx, dword [ebx]
sub ebx, eax
push ecx
push ebx
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
sub eax, ecx
push eax
mov ecx, edx
call fcn.00518e50
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
sub eax, ecx
mov edx, dword [esp + 0x10]
mov dword [ebx], eax
mov ecx, dword [esi + 0x44]
mov ax, word [esp + 0x14]
add edi, edx
mov dx, word [esp + 0x18]
mov word [ecx + 0x24], bp
mov word [ecx + 0x26], di
mov word [ecx + 0x28], ax
mov word [ecx + 0x2a], dx
call fcn.00516ff0
mov edi, dword [esi + 0xa0]
test edi, edi
jle 0x549dca
mov eax, dword [esi + 0x44]
movsx ecx, word [eax + 0x2a]
mov edx, dword [eax + 0x1c]
movsx ebx, word [eax + 0x24]
mov ebp, dword [eax + 0x14]
sub edx, ecx
movsx ecx, word [eax + 0x28]
sub edx, ecx
mov ecx, dword [eax + 0x20]
sub ecx, ebx
add ecx, dword [eax + 0x18]
movsx ebx, word [eax + 0x28]
mov eax, dword [esi + 0xa4]
push edi
sub ecx, eax
push edx
sub ecx, edi
add ebx, ebp
mov ebp, dword [esp + 0x28]
push ecx
push ebx
mov ecx, ebp
call fcn.00518e50
mov dword [esi + 0x48], eax
jmp 0x549dce
mov ebp, dword [esp + 0x20]
mov eax, dword [esi + 0x64]
test eax, eax
jne 0x549fbd
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x549fbd
test byte [esi + 0x125], 2
mov eax, dword [esi + 0x44]
je 0x549ef4
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x30], edx
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
sub edi, edx
add edi, dword [eax + 0x18]
mov dword [esp + 0x28], edi
mov edi, dword [ecx]
test edi, edi
mov bl, 0x10
je 0x549e74
jmp 0x549e20
mov al, byte [edi + 0x125]
test al, 1
je 0x549e74
test al, 8
jne 0x549e67
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x28]
test byte [ecx + 0xdc], 4
jne 0x549e45
test byte [edi + 0x127], bl
jne 0x549e67
xor edx, edx
mov dl, byte [esi + 0x125]
push 0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x34]
shr edx, 1
and edx, 1
push edx
push eax
push ecx
push ebp
mov ecx, edi
call fcn.00549ba0
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549e20
mov eax, dword [esi + 0x44]
movsx edx, word [eax + 0x26]
mov ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x58]
add edx, ecx
mov dword [esp + 0x24], edx
mov edi, dword [eax + 4]
test edi, edi
je 0x549fbd
mov al, byte [edi + 0x125]
test al, 1
jne 0x549fbd
test al, 8
jne 0x549edd
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx + 0x28]
test byte [edx + 0xdc], 4
jne 0x549ebb
test byte [edi + 0x127], bl
jne 0x549edd
xor eax, eax
mov al, byte [esi + 0x125]
push 0
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
shr eax, 1
and eax, 1
push eax
push ecx
push edx
push ebp
mov ecx, edi
call fcn.00549ba0
mov ecx, edi
call fcn.004ecf10
mov edi, eax
test edi, edi
jne 0x549e92
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x14
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
mov ebx, dword [eax + 0x18]
sub edi, edx
add edi, ebx
mov dword [esp + 0x30], edi
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x28], edx
mov edi, dword [ecx]
test edi, edi
je 0x549f5d
jmp 0x549f20
mov al, byte [edi + 0x125]
test al, 1
je 0x549f5d
test al, 8
jne 0x549f50
xor eax, eax
mov al, byte [esi + 0x125]
push 0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x2c]
shr eax, 1
and eax, 1
push eax
push ecx
push edx
push ebp
mov ecx, edi
call fcn.00549ba0
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549f20
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 + 0x24], edx
mov edi, dword [eax + 4]
test edi, edi
je 0x549fbd
lea esp, [esp]
mov al, byte [edi + 0x125]
test al, 1
jne 0x549fbd
test al, 8
jne 0x549fb0
xor ecx, ecx
mov cl, byte [esi + 0x125]
push 0
lea edx, [esp + 0x34]
lea eax, [esp + 0x28]
shr ecx, 1
and ecx, 1
push ecx
push edx
push eax
push ebp
mov ecx, edi
call fcn.00549ba0
mov ecx, edi
call fcn.004ecf10
mov edi, eax
test edi, edi
jne 0x549f80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x14