Function at 0x494665
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x38]
xor edx, edx
push ebp
mov dword [esp + 0xc], edx
mov cl, byte [ebx + 8]
mov ebp, dword [ebx]
mov al, cl
and al, 3
mov dword [esp + 0x1c], ebp
cmp al, 2
jne 0x494d26
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x48]
movzx eax, word [esi + 0x216]
mov dword [esp + 0x20], eax
movzx eax, word [esi + 0x218]
mov dword [esp + 0x1c], eax
movzx eax, word [esi + 0x21a]
mov dword [esp + 0x18], eax
cmp cl, 2
jne 0x4947ec
cmp byte [ebx + 9], 8
jne 0x4948ab
cmp dword [esi + 0x16c], edx
je 0x49476a
cmp dword [esi + 0x170], edx
je 0x49476a
test ebp, ebp
je 0x4947ec
mov dword [esp + 0x28], ebp
mov ebx, edi
mov ebp, edi
mov ecx, dword [esi + 0x170]
movzx eax, byte [ebx]
lea ebx, [ebx + 3]
mov al, byte [eax + ecx]
mov byte [esp + 0x12], al
movzx eax, byte [ebx - 2]
mov al, byte [eax + ecx]
mov byte [esp + 0x13], al
movzx eax, byte [ebx - 1]
mov cl, byte [eax + ecx]
mov al, byte [esp + 0x12]
mov ah, byte [esp + 0x13]
cmp al, ah
jne 0x494729
cmp al, cl
jne 0x494729
mov al, byte [ebx - 1]
jmp 0x494756
movzx ecx, cl
or edx, 1
imul ecx, dword [esp + 0x18]
movzx eax, ah
imul eax, dword [esp + 0x1c]
add ecx, eax
movzx eax, byte [esp + 0x12]
imul eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esi + 0x16c]
shr ecx, 0xf
mov al, byte [ecx + eax]
mov byte [ebp], al
inc ebp
sub dword [esp + 0x28], 1
jne 0x4946ef
mov dword [esp + 0x14], edx
jmp 0x4949de
mov ecx, edi
mov edx, edi
mov dword [esp + 0x28], ecx
test ebp, ebp
je 0x4947e8
mov ebx, dword [esp + 0x14]
mov esi, ebp
mov edi, eax
mov ah, byte [edx + 1]
mov al, byte [edx]
lea edx, [edx + 3]
mov byte [esp + 0x12], ah
mov ah, byte [edx - 1]
mov byte [esp + 0x13], al
cmp al, byte [esp + 0x12]
jne 0x4947a2
cmp al, ah
jne 0x4947a2
mov al, byte [edx - 1]
mov byte [ecx], al
jmp 0x4947ce
movzx ecx, ah
or ebx, 1
movzx eax, byte [esp + 0x12]
imul eax, dword [esp + 0x1c]
imul ecx, edi
add ecx, eax
movzx eax, byte [esp + 0x13]
imul eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x28]
shr ecx, 0xf
mov byte [eax], cl
mov ecx, eax
inc ecx
mov dword [esp + 0x28], ecx
sub esi, 1
jne 0x49477e
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
cmp byte [ebx + 8], 6
jne 0x494cee
cmp byte [ebx + 9], 8
jne 0x494b06
cmp dword [esi + 0x16c], 0
je 0x494aa6
cmp dword [esi + 0x170], 0
je 0x494aa6
mov dword [esp + 0x38], edi
test ebp, ebp
je 0x494cee
mov dword [esp + 0x2c], ebp
mov ebx, edi
mov ebp, dword [esp + 0x18]
mov ecx, dword [esi + 0x170]
movzx eax, byte [edi]
mov al, byte [eax + ecx]
mov byte [esp + 0x12], al
movzx eax, byte [edi + 1]
mov al, byte [eax + ecx]
mov byte [esp + 0x13], al
movzx eax, byte [edi + 2]
mov cl, byte [eax + ecx]
mov al, byte [esp + 0x12]
mov ah, byte [esp + 0x13]
cmp al, ah
jne 0x494862
cmp al, cl
je 0x494865
or edx, 1
movzx ecx, cl
movzx eax, ah
imul eax, dword [esp + 0x1c]
imul ecx, ebp
add ecx, eax
movzx eax, byte [esp + 0x12]
imul eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esi + 0x16c]
shr ecx, 0xf
mov al, byte [ecx + eax]
mov byte [ebx], al
mov al, byte [edi + 3]
add edi, 4
mov byte [ebx + 1], al
add ebx, 2
sub dword [esp + 0x2c], 1
jne 0x494830
mov dword [esp + 0x14], edx
jmp 0x494ce6
cmp dword [esi + 0x17c], edx
je 0x4949eb
cmp dword [esi + 0x178], edx
je 0x4949eb
test ebp, ebp
je 0x4947ec
mov dword [esp + 0x28], ebp
mov ebx, edi
mov ebp, edi
movzx edx, byte [ebx]
movzx eax, byte [ebx + 1]
mov cl, byte [ebx + 5]
shl dx, 8
or dx, ax
movzx eax, dx
movzx edx, byte [ebx + 2]
mov dword [esp + 0x2c], eax
movzx eax, byte [ebx + 3]
shl dx, 8
or dx, ax
movzx eax, dx
mov dword [esp + 0x30], eax
mov al, byte [ebx + 4]
add ebx, 6
movzx edx, al
shl dx, 8
movzx eax, cl
mov ecx, dword [esp + 0x2c]
or dx, ax
movzx eax, dx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], eax
cmp cx, dx
jne 0x49493d
cmp cx, ax
jne 0x49493d
mov edx, dword [esp + 0x14]
movzx ecx, cx
jmp 0x4949c5
movzx ebx, dx
movzx edx, cx
movzx ecx, word [esi + 0x15c]
mov esi, dword [esi + 0x17c]
movzx eax, dl
shr eax, cl
shr edx, 8
mov eax, dword [esi + eax*4]
movzx edx, word [eax + edx*2]
imul edx, dword [esp + 0x20]
movzx eax, bl
shr eax, cl
shr ebx, 8
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebx*2]
imul eax, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x34]
movzx ebx, ax
movzx eax, bl
shr eax, cl
shr ebx, 8
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 0x40]
movzx eax, word [eax + ebx*2]
imul eax, dword [esp + 0x18]
add edx, eax
mov eax, dword [esi + 0x178]
shr edx, 0xf
movzx ebx, dx
movzx edx, bl
shr edx, cl
shr ebx, 8
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x14]
or edx, 1
mov dword [esp + 0x14], edx
movzx ecx, word [eax + ebx*2]
mov ebx, dword [esp + 0x38]
mov eax, ecx
shr eax, 8
mov byte [ebp], al
mov byte [ebp + 1], cl
add ebp, 2
sub dword [esp + 0x28], 1
jne 0x4948d3
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
jmp 0x4947ec
test ebp, ebp
je 0x4947ec
mov ebx, ebp
mov esi, edi
mov ebp, eax
movzx edx, byte [edi]
lea edi, [edi + 6]
movzx eax, byte [edi - 5]
mov cl, byte [edi - 1]
shl dx, 8
or dx, ax
movzx eax, dx
movzx edx, byte [edi - 4]
mov dword [esp + 0x2c], eax
movzx eax, byte [edi - 3]
shl dx, 8
or dx, ax
movzx eax, dx
mov dword [esp + 0x28], eax
mov al, byte [edi - 2]
movzx edx, al
movzx eax, cl
shl dx, 8
or dx, ax
mov eax, dword [esp + 0x2c]
movzx ecx, dx
cmp ax, word [esp + 0x28]
jne 0x494a4d
cmp ax, cx
je 0x494a5a
mov edx, dword [esp + 0x14]
or edx, 1
mov dword [esp + 0x14], edx
jmp 0x494a5e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
movzx eax, ax
imul eax, dword [esp + 0x1c]
imul ecx, ebp
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, ax
imul eax, dword [esp + 0x20]
add ecx, eax
shr ecx, 0xf
movzx ecx, cx
mov eax, ecx
shr eax, 8
mov byte [esi], al
mov byte [esi + 1], cl
add esi, 2
sub ebx, 1
jne 0x4949f9
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
jmp 0x4949de
mov esi, edi
test ebp, ebp
je 0x494cee
mov ebx, ebp
mov al, byte [edi]
mov ah, byte [edi + 1]
mov cl, byte [edi + 2]
mov byte [esp + 0x13], al
cmp al, ah
jne 0x494ac6
cmp al, cl
je 0x494ac9
or edx, 1
movzx ecx, cl
imul ecx, dword [esp + 0x18]
movzx eax, ah
imul eax, dword [esp + 0x1c]
add ecx, eax
movzx eax, byte [esp + 0x13]
imul eax, dword [esp + 0x20]
add ecx, eax
shr ecx, 0xf
mov byte [esi], cl
mov al, byte [edi + 3]
add edi, 4
mov byte [esi + 1], al
add esi, 2
sub ebx, 1
jne 0x494ab2
mov dword [esp + 0x14], edx
jmp 0x494cea
cmp dword [esi + 0x17c], 0
je 0x494c38
cmp dword [esi + 0x178], 0
je 0x494c38
mov dword [esp + 0x38], edi
test ebp, ebp
je 0x494cee
mov dword [esp + 0x2c], ebp
mov ebp, edi
movzx edx, byte [edi]
movzx eax, byte [edi + 1]
shl dx, 8
or dx, ax
movzx eax, byte [edi + 3]
movzx ebx, dx
movzx edx, byte [edi + 2]
shl dx, 8
or dx, ax
mov dword [esp + 0x34], ebx
movzx eax, dx
movzx edx, byte [edi + 4]
mov dword [esp + 0x38], eax
movzx eax, byte [edi + 5]
mov ecx, dword [esp + 0x38]
shl dx, 8
or dx, ax
movzx eax, dx
mov dword [esp + 0x30], eax
cmp bx, cx
jne 0x494b89
cmp bx, ax
jne 0x494b89
movzx ecx, bx
jmp 0x494c0b
mov eax, dword [esp + 0x34]
movzx edx, ax
movzx eax, dl
movzx ebx, cx
movzx ecx, word [esi + 0x15c]
mov esi, dword [esi + 0x17c]
shr eax, cl
shr edx, 8
mov eax, dword [esi + eax*4]
movzx edx, word [eax + edx*2]
imul edx, dword [esp + 0x20]
movzx eax, bl
shr eax, cl
shr ebx, 8
mov eax, dword [esi + eax*4]
movzx eax, word [eax + ebx*2]
imul eax, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x30]
movzx ebx, ax
movzx eax, bl
shr eax, cl
shr ebx, 8
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 0x40]
movzx eax, word [eax + ebx*2]
imul eax, dword [esp + 0x18]
add edx, eax
mov eax, dword [esi + 0x178]
shr edx, 0xf
movzx ebx, dx
movzx edx, bl
shr edx, cl
shr ebx, 8
or dword [esp + 0x14], 1
mov eax, dword [eax + edx*4]
movzx ecx, word [eax + ebx*2]
mov eax, ecx
shr eax, 8
mov byte [ebp], al
mov byte [ebp + 1], cl
mov al, byte [edi + 6]
mov byte [ebp + 2], al
mov al, byte [edi + 7]
add edi, 8
mov byte [ebp + 3], al
add ebp, 4
sub dword [esp + 0x2c], 1
jne 0x494b32
jmp 0x494ce6
mov esi, edi
test ebp, ebp
je 0x494cee
mov ebx, ebp
mov ebp, dword [esp + 0x14]
movzx edx, byte [edi]
movzx eax, byte [edi + 1]
shl dx, 8
or dx, ax
movzx eax, dx
movzx edx, byte [edi + 2]
mov dword [esp + 0x38], eax
movzx eax, byte [edi + 3]
shl dx, 8
or dx, ax
movzx eax, dx
movzx edx, byte [edi + 4]
mov dword [esp + 0x2c], eax
movzx eax, byte [edi + 5]
shl dx, 8
or dx, ax
movzx eax, dx
mov edx, dword [esp + 0x38]
cmp dx, word [esp + 0x2c]
jne 0x494c95
cmp dx, ax
je 0x494c98
or ebp, 1
mov ecx, eax
mov eax, dword [esp + 0x2c]
imul ecx, dword [esp + 0x18]
movzx eax, ax
imul eax, dword [esp + 0x1c]
add ecx, eax
movzx eax, dx
imul eax, dword [esp + 0x20]
add ecx, eax
shr ecx, 0xf
movzx ecx, cx
mov eax, ecx
shr eax, 8
mov byte [esi], al
mov byte [esi + 1], cl
mov al, byte [edi + 6]
mov byte [esi + 2], al
mov al, byte [edi + 7]
add edi, 8
mov byte [esi + 3], al
add esi, 4
sub ebx, 1
jne 0x494c48
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
add byte [ebx + 0xa], 0xfe
movzx eax, byte [ebx + 0xa]
movzx ecx, byte [ebx + 9]
and byte [ebx + 8], 0xfd
imul ecx, eax
pop edi
pop esi
mov byte [ebx + 0xb], cl
movzx eax, cl
cmp cl, 8
jb 0x494d16
shr eax, 3
imul eax, ebp
jmp 0x494d1f
imul eax, ebp
add eax, 7
shr eax, 3
mov edx, dword [esp + 0xc]
mov dword [ebx + 4], eax
pop ebp
mov eax, edx
pop ebx
add esp, 0x2c
ret