Function at 0x487940
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
mov esi, 0x808e8c
mov dword [esp + 0x18], pe_nt_image_headers32
mov al, byte [esi + 0x20]
test al, al
je 0x487e49
call fcn.0048df30
mov eax, dword [esi]
mov ecx, dword [esi - 4]
mov edx, dword [esi - 8]
push eax
push ecx
push edx
call fcn.0048e690
mov dx, word [esi + 6]
mov cx, word [esi + 4]
mov eax, dword [0x7e70c8]
mov di, word [esi + 8]
mov word [0x80d8a2], dx
mov word [0x80d8a0], cx
movsx ebx, dx
movsx edx, cx
mov word [0x80d8a4], di
mov ecx, dword [eax]
movsx edi, di
imul ecx, edx
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 8]
imul edx, edi
add ecx, edx
mov edx, dword [eax + 4]
imul edx, ebx
mov ebp, dword [eax + 0xc]
add ecx, edx
mov edx, dword [eax + 0x14]
add ecx, ebp
mov ebp, dword [eax + 0x18]
imul edx, ebx
imul ebp, edi
mov dword [esp + 0x20], edi
mov edi, dword [eax + 0x10]
add edx, ebp
mov ebp, dword [esp + 0x1c]
imul edi, ebp
add edx, edi
mov edi, dword [eax + 0x1c]
add edx, edi
mov edi, dword [eax + 0x20]
imul edi, ebp
mov ebp, dword [eax + 0x24]
imul ebp, ebx
mov ebx, dword [eax + 0x28]
add edi, ebp
imul ebx, dword [esp + 0x20]
add edi, ebx
mov ebx, dword [eax + 0x2c]
add edi, ebx
sar edi, 0xe
sar ecx, 0xe
sar edx, 0xe
mov dword [0x80d7a0], edi
mov di, word [esi + 0xc]
mov word [0x80d6a0], cx
mov cx, word [esi + 0xe]
mov word [0x80d6a2], dx
mov dx, word [esi + 0x10]
mov word [0x80d8a0], di
mov word [0x80d8a2], cx
movsx edi, di
mov word [0x80d8a4], dx
mov ebx, dword [eax]
movsx edx, dx
imul ebx, edi
mov dword [esp + 0x1c], edi
mov edi, dword [eax + 8]
imul edi, edx
movsx ecx, cx
add ebx, edi
mov edi, dword [eax + 4]
imul edi, ecx
mov ebp, dword [eax + 0x14]
add ebx, edi
mov edi, dword [eax + 0xc]
mov dword [esp + 0x20], edx
add ebx, edi
mov edi, dword [eax + 0x18]
imul ebp, ecx
imul edi, edx
mov edx, dword [eax + 0x10]
add ebp, edi
mov edi, dword [esp + 0x1c]
imul edx, edi
add ebp, edx
mov edx, dword [eax + 0x1c]
add ebp, edx
mov edx, dword [eax + 0x20]
imul edx, edi
mov edi, dword [eax + 0x24]
imul edi, ecx
mov ecx, dword [eax + 0x28]
add edx, edi
imul ecx, dword [esp + 0x20]
mov edi, dword [eax + 0x2c]
add edx, ecx
mov cx, word [esi + 0x14]
add edx, edi
mov di, word [esi + 0x16]
mov word [0x80d8a0], cx
sar ebx, 0xe
sar edx, 0xe
mov word [0x80d6a4], bx
mov dword [0x80d7a4], edx
mov dx, word [esi + 0x18]
mov word [0x80d8a2], di
sar ebp, 0xe
movsx ebx, di
movsx edi, cx
mov word [0x80d6a6], bp
mov word [0x80d8a4], dx
mov ecx, dword [eax]
mov dword [esp + 0x1c], edi
movsx edx, dx
imul ecx, edi
mov edi, dword [eax + 8]
mov ebp, dword [eax + 0x18]
imul edi, edx
imul ebp, edx
add ecx, edi
mov edi, dword [eax + 4]
imul edi, ebx
add ecx, edi
mov edi, dword [eax + 0xc]
add ecx, edi
mov edi, dword [eax + 0x14]
imul edi, ebx
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x10]
add edi, ebp
mov ebp, dword [esp + 0x1c]
imul edx, ebp
add edi, edx
mov edx, dword [eax + 0x1c]
add edi, edx
mov edx, dword [eax + 0x20]
imul edx, ebp
mov ebp, dword [eax + 0x24]
imul ebp, ebx
mov ebx, dword [eax + 0x28]
add edx, ebp
imul ebx, dword [esp + 0x20]
add edx, ebx
mov ebx, dword [eax + 0x2c]
mov eax, dword [0x753854]
add edx, ebx
sar ecx, 0xe
sar edi, 0xe
sar edx, 0xe
push eax
mov dword [0x80d7a8], edx
push edx
mov word [0x80d6a8], cx
movsx edx, di
movsx eax, cx
mov ecx, dword [0x80d7a4]
push edx
push eax
mov word [0x80d6aa], di
push ecx
movsx edx, word [0x80d6a6]
movsx eax, word [0x80d6a4]
mov ecx, dword [0x80d7a0]
push edx
movsx edx, word [0x80d6a2]
push eax
push ecx
movsx eax, word [0x80d6a0]
push edx
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.00483bd0
mov ecx, dword [0x7e70c8]
mov edi, dword [esi + 0x28]
sub ecx, 0x30
xor edx, edx
mov dl, byte [esi + 0x25]
mov dword [0x7e70c8], ecx
and edi, 0xff
xor ecx, ecx
mov cl, byte [esi + 0x23]
xor eax, eax
mov al, byte [esi + 0x24]
imul edx, edi
imul ecx, edi
imul eax, edi
xor al, al
xor cl, cl
sar edx, 8
or eax, edx
xor edx, edx
shl ecx, 8
or eax, ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
mov dl, byte [esp + 0x4a]
xor ebx, ebx
mov bl, byte [esp + 0x4e]
add esp, 0x38
add edx, ebx
xor ebx, ebx
mov edi, edx
xor edx, edx
mov dl, ch
mov bl, ah
and ecx, 0xff
and eax, 0xff
add edx, ebx
add ecx, eax
cmp edi, 0xff
jle 0x487c2f
mov edi, 0xff
cmp edx, 0xff
jle 0x487c3c
mov edx, 0xff
cmp ecx, 0xff
jle 0x487c49
mov ecx, 0xff
shl edi, 8
or edi, edx
lea eax, [esp + 0x2c]
shl edi, 8
or edi, ecx
push eax
push edi
call fcn.00482830
mov edi, dword [esi + 0x2c]
xor edx, edx
mov dl, byte [esi + 0x25]
and edi, 0xff
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 0x23]
mov al, byte [esi + 0x24]
imul edx, edi
imul ecx, edi
imul eax, edi
xor al, al
xor cl, cl
sar edx, 8
or eax, edx
xor edx, edx
shl ecx, 8
or eax, ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
mov dl, byte [esp + 0x1a]
xor ebx, ebx
mov bl, byte [esp + 0x1e]
add esp, 8
add edx, ebx
xor ebx, ebx
mov edi, edx
xor edx, edx
mov dl, ch
mov bl, ah
and ecx, 0xff
and eax, 0xff
add edx, ebx
add ecx, eax
cmp edi, 0xff
jle 0x487ccf
mov edi, 0xff
cmp edx, 0xff
jle 0x487cdc
mov edx, 0xff
cmp ecx, 0xff
jle 0x487ce9
mov ecx, 0xff
shl edi, 8
or edi, edx
lea eax, [esp + 0x4c]
shl edi, 8
or edi, ecx
push eax
push edi
call fcn.00482830
mov edi, dword [esi + 0x30]
xor edx, edx
mov dl, byte [esi + 0x25]
and edi, 0xff
xor ecx, ecx
xor eax, eax
mov cl, byte [esi + 0x23]
mov al, byte [esi + 0x24]
imul edx, edi
imul ecx, edi
imul eax, edi
xor al, al
xor cl, cl
sar edx, 8
or eax, edx
xor edx, edx
shl ecx, 8
or eax, ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
mov dl, byte [esp + 0x1a]
xor ebx, ebx
mov bl, byte [esp + 0x1e]
add esp, 8
add edx, ebx
xor ebx, ebx
mov edi, edx
xor edx, edx
mov dl, ch
mov bl, ah
and ecx, 0xff
and eax, 0xff
add edx, ebx
add ecx, eax
cmp edi, 0xff
jle 0x487d6f
mov edi, 0xff
cmp edx, 0xff
jle 0x487d7c
mov edx, 0xff
cmp ecx, 0xff
jle 0x487d89
mov ecx, 0xff
shl edi, 8
or edi, edx
lea eax, [esp + 0x6c]
shl edi, 8
or edi, ecx
push eax
push edi
call fcn.00482830
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x58]
mov eax, 0xff000000
or edx, eax
or ecx, eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x78]
or ebp, eax
or ebx, eax
or edi, eax
or edx, eax
mov eax, dword [esi - 0xc]
mov dword [esp + 0x54], ecx
and eax, 0x7fff
mov dword [esp + 0x78], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x38], ebx
lea ecx, [eax + eax*8]
add esp, 8
xor ebx, ebx
mov dword [esp + 0x6c], ebp
lea edx, [eax + ecx*2]
mov eax, dword [0x533990]
mov bx, word [eax + edx*2]
lea edi, [eax + edx*2]
test byte [esi + 0x38], 1
je 0x487e09
mov word [edi], 2
xor eax, eax
mov ax, word [edi]
test eax, eax
je 0x487e2f
jle 0x487e46
cmp eax, 2
jg 0x487e46
push 1
push edi
push 2
push 1
lea ecx, [esp + 0x2c]
push 0
push ecx
call dword [0x53399c]
jmp 0x487e43
push 1
push edi
push 2
push 1
lea edx, [esp + 0x2c]
push 0
push edx
call dword [0x5339b0]
add esp, 0x18
mov word [edi], bx
mov eax, dword [esp + 0x18]
add esi, 0x48
dec eax
mov dword [esp + 0x18], eax
jne 0x487954
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret