Function at 0x549bd0
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 0x549c9b
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, 0x4e
je 0x549c1c
cmp ecx, 0x4d
jne 0x549c6b
test byte [esi + 0x127], 0x40
je 0x549c9b
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 0x549c97
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 0x549d15
mov ebx, dword [esp + 0x28]
test al, 1
mov eax, dword [esi + 0x80]
je 0x549ceb
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.00518e70
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
sub eax, edx
jmp 0x549d81
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.00518e70
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
add eax, ecx
jmp 0x549d81
test al, 1
mov eax, dword [esi + 0x80]
je 0x549d50
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.00518e70
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x44], eax
mov eax, dword [ebx]
add eax, ecx
jmp 0x549d81
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.00518e70
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.00517010
mov ecx, dword [esi + 0xa0]
test ecx, ecx
mov ebp, dword [esp + 0x20]
jle 0x549dfa
mov eax, dword [esi + 0x44]
movsx edx, word [eax + 0x2a]
mov edi, dword [eax + 0x1c]
mov ebx, dword [esi + 0xa4]
sub edi, edx
movsx edx, word [eax + 0x28]
sub edi, edx
movsx edx, word [eax + 0x24]
push ecx
push edi
mov edi, dword [eax + 0x20]
sub edi, edx
mov edx, dword [eax + 0x18]
sub edi, ebx
add edi, edx
mov edx, dword [eax + 0x14]
sub edi, ecx
movsx ecx, word [eax + 0x28]
add ecx, edx
push edi
push ecx
mov ecx, ebp
call fcn.00518e70
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x64]
test eax, eax
jne 0x549fde
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x549fde
test byte [esi + 0x125], 2
mov eax, dword [esi + 0x44]
je 0x549f22
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 0x549e97
mov al, byte [edi + 0x125]
test al, 1
je 0x549e97
test al, 8
jne 0x549e8a
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x28]
test byte [ecx + 0xdc], 4
jne 0x549e68
test byte [edi + 0x127], bl
jne 0x549e8a
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.00549bd0
mov ecx, edi
call fcn.004ecf70
mov edi, eax
test edi, edi
jne 0x549e43
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 0x549fde
jmp 0x549ec0
mov al, byte [edi + 0x125]
test al, 1
jne 0x549fde
test al, 8
jne 0x549f0b
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx + 0x28]
test byte [edx + 0xdc], 4
jne 0x549ee9
test byte [edi + 0x127], bl
jne 0x549f0b
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.00549bd0
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549ec0
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 0x549f82
mov al, byte [edi + 0x125]
test al, 1
je 0x549f82
test al, 8
jne 0x549f75
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.00549bd0
mov ecx, edi
call fcn.004ecf70
mov edi, eax
test edi, edi
jne 0x549f45
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 0x549fde
mov al, byte [edi + 0x125]
test al, 1
jne 0x549fde
test al, 8
jne 0x549fd1
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.00549bd0
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549fa1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x14