Function at 0x549760
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov ebp, 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 0x549817
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx + 0xc]
cmp ecx, 0x4e
je 0x5497a8
cmp ecx, 0x4d
jne 0x5497ed
test byte [esi + 0x127], 0x40
je 0x549817
mov dl, byte [eax + 4]
mov edi, dword [esp + 0x10]
xor ecx, ecx
test dl, dl
setne cl
xor edx, edx
add ebp, 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 0x549809
movzx ecx, byte [eax + 4]
movzx edx, byte [eax + 5]
mov edi, dword [esp + 0x10]
add ebp, 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 0x54987b
mov edi, dword [esp + 0x28]
mov edx, dword [edi]
test al, 1
mov eax, dword [esi + 0x80]
push eax
push ecx
je 0x54985d
sub edx, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push edx
push ecx
mov ecx, ebx
call fcn.00518e70
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
sub eax, edx
jmp 0x5498c9
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
push edx
push ecx
mov ecx, ebx
call fcn.00518e70
mov edx, dword [esi + 0x80]
mov dword [esi + 0x44], eax
mov eax, dword [edi]
add eax, edx
jmp 0x5498c9
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test al, 1
mov eax, dword [esi + 0x80]
push eax
push ecx
je 0x5498ab
mov ecx, dword [edx]
mov edx, dword [edi]
sub ecx, eax
push ecx
push edx
mov ecx, ebx
call fcn.00518e70
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x84]
add dword [edi], eax
jmp 0x5498cb
mov edx, dword [edx]
sub edx, eax
mov eax, dword [edi]
sub eax, ecx
push edx
push eax
mov ecx, ebx
call fcn.00518e70
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], bp
mov word [ecx + 0x28], ax
mov word [ecx + 0x2a], dx
call fcn.00517010
mov ecx, dword [esi + 0xa0]
test ecx, ecx
jle 0x549a02
mov eax, dword [esi + 0x44]
movsx edx, word [eax + 0x2a]
mov edi, dword [eax + 0x1c]
mov ebp, dword [eax + 0x18]
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
sub edi, dword [esi + 0xa4]
add edi, ebp
mov ebp, dword [eax + 0x14]
sub edi, ecx
movsx ecx, word [eax + 0x28]
add ecx, ebp
push edi
push ecx
mov ecx, ebx
call fcn.00518e70
mov ecx, eax
mov eax, dword [esi + 0x98]
test eax, eax
mov dword [esi + 0x48], ecx
jle 0x5499c3
cdq
sub eax, edx
movsx edx, word [ecx + 0x2a]
mov ebp, dword [esi + 0x9c]
sar eax, 1
push eax
mov eax, dword [ecx + 0x1c]
sub eax, edx
movsx edx, word [ecx + 0x28]
sub eax, edx
mov edx, dword [ecx + 0x20]
push eax
movsx eax, word [ecx + 0x24]
sub edx, eax
add edx, dword [ecx + 0x18]
movsx eax, word [ecx + 0x28]
add edx, ebp
push edx
add eax, dword [ecx + 0x14]
push eax
mov ecx, ebx
call fcn.00518e70
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x98]
mov edi, dword [ecx + 0x1c]
cdq
sub eax, edx
movsx edx, word [ecx + 0x2a]
sub edi, edx
movsx edx, word [ecx + 0x28]
sar eax, 1
sub edi, edx
movsx edx, word [ecx + 0x26]
push eax
push edi
add edx, dword [ecx + 0x18]
sub edx, eax
movsx eax, word [ecx + 0x28]
push edx
add eax, dword [ecx + 0x14]
push eax
mov ecx, ebx
call fcn.00518e70
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x9c]
test ecx, ecx
jle 0x549a02
mov eax, dword [esi + 0x48]
mov edx, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
push ecx
movsx ecx, word [eax + 0x2a]
sub edx, ecx
movsx ecx, word [eax + 0x28]
sub edx, ecx
mov ecx, dword [eax + 0x20]
push edx
movsx edx, word [eax + 0x24]
sub ecx, edx
movsx edx, word [eax + 0x28]
add ecx, edi
push ecx
add edx, dword [eax + 0x14]
push edx
mov ecx, ebx
call fcn.00518e70
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x64]
test eax, eax
jne 0x549bbb
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x549bbb
test byte [esi + 0x125], 2
mov eax, dword [esi + 0x44]
je 0x549af9
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 0x549a8b
lea esp, [esp]
mov al, byte [edi + 0x125]
test al, 1
je 0x549a8b
test al, 8
jne 0x549a7e
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 ebx
mov ecx, edi
call fcn.00549760
mov ecx, edi
call fcn.004ecf70
mov edi, eax
test edi, edi
jne 0x549a50
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 0x549bbb
jmp 0x549ab0
mov al, byte [edi + 0x125]
test al, 1
jne 0x549bbb
test al, 8
jne 0x549ae2
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 ebx
mov ecx, edi
call fcn.00549760
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549ab0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
mov ebp, dword [eax + 0x18]
sub edi, edx
add edi, ebp
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 0x549b5b
lea esp, [esp]
mov al, byte [edi + 0x125]
test al, 1
je 0x549b5b
test al, 8
jne 0x549b4e
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 ebx
mov ecx, edi
call fcn.00549760
mov ecx, edi
call fcn.004ecf70
mov edi, eax
test edi, edi
jne 0x549b20
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 0x549bbb
lea ebx, [ebx]
mov al, byte [edi + 0x125]
test al, 1
jne 0x549bbb
test al, 8
jne 0x549bae
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 ebx
mov ecx, edi
call fcn.00549760
mov ecx, edi
call fcn.004ecf40
mov edi, eax
test edi, edi
jne 0x549b80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x10