Function at 0x40f910
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x24
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [esp + 8], 0
mov ebx, dword [ebx]
mov dword [esp + 0xc], ebx
mov bl, byte [esi + 8]
test bl, 2
je 0x40f9ac
mov ax, word [edx + 0x22a]
and eax, 0xffff
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x22c]
and eax, 0xffff
mov dword [esp + 0x18], eax
mov ax, word [edx + 0x22e]
and eax, 0xffff
cmp bl, 2
mov dword [esp + 0x1c], eax
je 0x40f9d0
mov al, byte [esi + 9]
cmp bl, 6
je 0x40fb66
mov esi, dword [esp + 0x3c]
and ebx, 0xfffffffd
mov dl, byte [esi + 0xa]
mov byte [esi + 8], bl
sub edx, 2
imul eax, edx
mov byte [esi + 0xa], dl
mov byte [esi + 0xb], al
cmp al, 7
jbe 0x40f9b8
shr al, 3
mov ebp, dword [esp + 0xc]
and eax, 0xff
imul eax, ebp
mov edx, dword [esp + 0x3c]
mov dword [edx + 4], eax
mov eax, dword [esp + 8]
add esp, 0x24
pop ebx
pop esi
pop edi
pop ebp
ret
and eax, 0xff
mov edi, dword [esp + 0xc]
imul eax, edi
add eax, 7
shr eax, 3
jmp 0x40f9a5
mov esi, dword [esp + 0x3c]
mov al, byte [esi + 9]
cmp al, 8
je 0x40fd00
mov ebp, dword [edx + 0x178]
test ebp, ebp
je 0x40ff90
mov esi, dword [edx + 0x174]
test esi, esi
je 0x40ff90
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x410170
mov ebp, dword [esp + 0x40]
mov dword [esp + 4], 0
mov eax, ebp
mov edi, edx
xor edx, edx
xor ebx, ebx
mov dl, byte [eax]
mov bl, byte [eax + 1]
shl edx, 8
mov cl, byte [eax + 3]
or ebx, edx
xor edx, edx
and ecx, 0xff
mov dl, byte [eax + 2]
shl edx, 8
mov esi, ecx
xor ecx, ecx
or esi, edx
mov cl, byte [eax + 4]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 5]
or edx, ecx
add eax, 6
cmp bx, dx
jne 0x40fa5c
cmp bx, si
mov ecx, ebx
je 0x40fb2f
mov ecx, esi
and ecx, 0xff
mov dword [esp], ecx
mov cl, byte [edi + 0x158]
sar dword [esp], cl
mov ecx, esi
movzx esi, ch
mov dword [esp + 0x20], esi
mov ecx, dword [edi + 0x178]
mov esi, dword [esp]
mov esi, dword [ecx + esi*4]
mov ecx, dword [esp + 0x20]
mov cx, word [esi + ecx*2]
mov esi, ecx
mov ecx, dword [esp + 0x18]
and esi, 0xffff
imul esi, ecx
mov cl, bl
mov dword [esp + 8], esi
and ecx, 0xff
mov esi, ecx
mov cl, byte [edi + 0x158]
movzx ebx, bh
sar esi, cl
mov dword [esp + 0x20], ebx
mov ebx, dword [edi + 0x178]
mov ecx, dword [esp + 0x20]
mov esi, dword [ebx + esi*4]
mov bx, word [esi + ecx*2]
mov esi, dword [esp + 0x14]
and ebx, 0xffff
mov cl, byte [edi + 0x158]
imul ebx, esi
mov esi, dword [esp + 8]
mov dword [esp + 8], 1
add esi, ebx
xor ebx, ebx
mov bl, dl
sar ebx, cl
mov ecx, dword [edi + 0x178]
movzx edx, dh
mov ebx, dword [ecx + ebx*4]
mov cl, byte [edi + 0x158]
mov bx, word [ebx + edx*2]
mov edx, dword [esp + 0x1c]
and ebx, 0xffff
imul ebx, edx
add ebx, esi
xor edx, edx
shr ebx, 0xf
mov dl, bl
sar edx, cl
mov ecx, dword [edi + 0x174]
movzx ebx, bh
mov edx, dword [ecx + edx*4]
mov cx, word [edx + ebx*2]
mov edx, ecx
mov byte [ebp + 1], cl
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
shr dx, 8
inc ecx
mov dword [esp + 4], ecx
mov byte [ebp], dl
add ebp, 2
cmp dword [esp + 4], ebx
jne 0x40fa17
mov esi, dword [esp + 0x3c]
mov edx, edi
mov bl, byte [esi + 8]
mov al, byte [esi + 9]
jmp 0x40f970
cmp al, 8
je 0x40fdf0
mov ebp, dword [edx + 0x178]
test ebp, ebp
je 0x40fed6
mov esi, dword [edx + 0x174]
test esi, esi
je 0x40fed6
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x40f979
mov ebp, dword [esp + 0x40]
mov dword [esp + 4], 0
mov eax, ebp
mov edi, edx
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
mov bl, byte [eax + 3]
or edx, ecx
xor ecx, ecx
and ebx, 0xff
mov cl, byte [eax + 2]
shl ecx, 8
mov esi, ebx
or esi, ecx
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax + 4]
shl ecx, 8
mov bl, byte [eax + 5]
or ebx, ecx
cmp dx, bx
jne 0x40fbe8
cmp dx, si
mov ecx, edx
je 0x40fcbb
mov ecx, esi
and ecx, 0xff
mov dword [esp], ecx
mov cl, byte [edi + 0x158]
sar dword [esp], cl
mov ecx, esi
movzx esi, ch
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 0x178]
mov esi, dword [esp]
mov esi, dword [ecx + esi*4]
mov ecx, dword [esp + 0x10]
mov cx, word [esi + ecx*2]
mov esi, ecx
mov ecx, dword [esp + 0x18]
and esi, 0xffff
imul esi, ecx
mov cl, dl
mov dword [esp + 8], esi
and ecx, 0xff
mov esi, ecx
mov cl, byte [edi + 0x158]
movzx edx, dh
sar esi, cl
mov dword [esp + 0x10], edx
mov edx, dword [edi + 0x178]
mov ecx, dword [esp + 0x10]
mov esi, dword [edx + esi*4]
mov dx, word [esi + ecx*2]
mov esi, dword [esp + 0x14]
and edx, 0xffff
mov cl, byte [edi + 0x158]
imul edx, esi
mov esi, dword [esp + 8]
mov dword [esp + 8], 1
add esi, edx
xor edx, edx
mov dl, bl
sar edx, cl
mov ecx, dword [edi + 0x178]
movzx ebx, bh
mov edx, dword [ecx + edx*4]
mov cl, byte [edi + 0x158]
mov bx, word [edx + ebx*2]
mov edx, dword [esp + 0x1c]
and ebx, 0xffff
imul ebx, edx
add ebx, esi
xor edx, edx
shr ebx, 0xf
mov dl, bl
sar edx, cl
mov ecx, dword [edi + 0x174]
movzx ebx, bh
mov edx, dword [ecx + edx*4]
mov cx, word [edx + ebx*2]
mov edx, ecx
mov byte [ebp + 1], cl
shr dx, 8
mov ecx, dword [esp + 4]
mov byte [ebp], dl
inc ecx
mov dl, byte [eax + 6]
mov dword [esp + 4], ecx
mov byte [ebp + 2], dl
mov ebx, dword [esp + 0xc]
mov dl, byte [eax + 7]
add eax, 8
mov byte [ebp + 3], dl
add ebp, 4
cmp dword [esp + 4], ebx
jne 0x40fba6
mov esi, dword [esp + 0x3c]
mov bl, byte [esi + 8]
mov al, byte [esi + 9]
jmp 0x40f979
mov ebp, dword [edx + 0x168]
test ebp, ebp
je 0x410061
mov ecx, dword [edx + 0x16c]
test ecx, ecx
je 0x410061
mov esi, dword [esp + 0xc]
test esi, esi
je 0x40f979
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0
inc eax
mov ebp, edx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
jmp 0x40fdaa
mov edx, dword [esp + 0x14]
and edi, 0xff
mov esi, dword [esp + 0x18]
and ebx, 0xff
imul ebx, edx
imul edi, esi
and ecx, 0xff
add edi, ebx
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebp + 0x168]
imul ecx, ebx
mov dword [esp + 8], 1
lea ebx, [edi + ecx]
mov ecx, dword [esp]
shr ebx, 0xf
mov dl, byte [edx + ebx]
mov byte [ecx - 1], dl
mov ecx, dword [esp + 4]
mov ebx, dword [esp]
inc ecx
inc ebx
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xc]
mov dword [esp], ebx
cmp dword [esp + 4], edx
je 0x410050
mov ecx, dword [ebp + 0x16c]
xor edx, edx
mov dl, byte [eax]
mov bl, byte [ecx + edx]
xor edx, edx
mov dl, byte [eax + 1]
movzx edi, byte [ecx + edx]
mov dl, byte [eax + 2]
add eax, 3
mov byte [esp + 0x10], dl
and edx, 0xff
mov cl, byte [ecx + edx]
cmp bl, cl
jne 0x40fd40
mov edx, edi
cmp bl, dl
jne 0x40fd40
mov esi, dword [esp]
mov bl, byte [esp + 0x10]
mov byte [esi - 1], bl
jmp 0x40fd86
mov edi, dword [edx + 0x168]
test edi, edi
je 0x4100f3
mov ecx, dword [edx + 0x16c]
test ecx, ecx
je 0x4100f3
mov esi, dword [esp + 0xc]
test esi, esi
je 0x40f979
mov ebp, dword [esp + 0x40]
mov dword [esp + 4], 0
mov eax, ebp
mov dword [esp], edx
jmp 0x40fe45
mov ebx, dword [esp]
add ebp, 2
add eax, 4
mov ecx, dword [ebx + 0x16c]
mov edi, dword [ebx + 0x168]
xor ebx, ebx
xor edx, edx
mov bl, byte [eax + 1]
mov dl, byte [eax]
mov bl, byte [ecx + ebx]
mov dl, byte [ecx + edx]
mov byte [esp + 0x10], bl
mov bl, byte [eax + 2]
and ebx, 0xff
mov cl, byte [ecx + ebx]
cmp dl, cl
jne 0x40fe6e
cmp dl, byte [esp + 0x10]
je 0x40fe76
mov dword [esp + 8], 1
xor ebx, ebx
mov esi, dword [esp + 0x18]
mov bl, byte [esp + 0x10]
and edx, 0xff
imul ebx, esi
mov esi, dword [esp + 0x14]
and ecx, 0xff
imul edx, esi
add ebx, edx
mov edx, dword [esp + 0x1c]
imul ecx, edx
add ebx, ecx
mov ecx, dword [esp + 4]
shr ebx, 0xf
inc ecx
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xc]
mov dl, byte [edi + ebx]
cmp dword [esp + 4], esi
mov byte [ebp], dl
mov dl, byte [eax + 3]
mov byte [ebp + 1], dl
jne 0x40fe30
mov edx, dword [esp + 0x3c]
mov bl, byte [edx + 8]
mov al, byte [edx + 9]
jmp 0x40f979
mov edi, dword [esp + 0xc]
test edi, edi
je 0x40f979
mov ebp, dword [esp + 0x40]
xor edi, edi
mov eax, ebp
lea esi, [esi]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
xor ebx, ebx
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
mov bl, byte [eax + 3]
shl ecx, 8
or ebx, ecx
mov cl, byte [eax + 4]
and ecx, 0xff
mov esi, ecx
xor ecx, ecx
shl esi, 8
mov cl, byte [eax + 5]
or ecx, esi
cmp dx, cx
jne 0x40ff2c
cmp dx, bx
je 0x40ff34
mov dword [esp + 8], 1
and ebx, 0xffff
mov esi, dword [esp + 0x18]
imul ebx, esi
and edx, 0xffff
mov esi, dword [esp + 0x14]
imul edx, esi
and ecx, 0xffff
add ebx, edx
mov edx, dword [esp + 0x1c]
inc edi
imul ecx, edx
add ebx, ecx
shr ebx, 0xf
mov edx, ebx
mov byte [ebp + 1], bl
shr dx, 8
mov byte [ebp], dl
mov dl, byte [eax + 6]
mov byte [ebp + 2], dl
mov dl, byte [eax + 7]
add eax, 8
mov byte [ebp + 3], dl
add ebp, 4
cmp edi, dword [esp + 0xc]
jne 0x40fef0
jmp 0x40fcf0
mov edi, dword [esp + 0xc]
test edi, edi
je 0x410170
mov ebp, dword [esp + 0x40]
mov dword [esp + 8], 0
mov eax, ebp
xor edi, edi
mov dword [esp + 4], edx
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
xor ebx, ebx
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
mov bl, byte [eax + 3]
shl ecx, 8
or ebx, ecx
mov cl, byte [eax + 4]
and ecx, 0xff
mov esi, ecx
xor ecx, ecx
shl esi, 8
mov cl, byte [eax + 5]
or ecx, esi
add eax, 6
cmp dx, cx
jne 0x40ffef
cmp dx, bx
je 0x40fff7
mov dword [esp + 8], 1
and ebx, 0xffff
mov esi, dword [esp + 0x18]
imul ebx, esi
and edx, 0xffff
mov esi, dword [esp + 0x14]
imul edx, esi
and ecx, 0xffff
add ebx, edx
mov edx, dword [esp + 0x1c]
inc edi
imul ecx, edx
add ebx, ecx
shr ebx, 0xf
mov edx, ebx
mov byte [ebp + 1], bl
shr dx, 8
mov byte [ebp], dl
add ebp, 2
cmp edi, dword [esp + 0xc]
jne 0x40ffb0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 4]
mov bl, byte [esi + 8]
jmp 0x40f96d
mov esi, dword [esp + 0x3c]
mov edx, ebp
mov bl, byte [esi + 8]
mov al, byte [esi + 9]
jmp 0x40f970
mov edi, dword [esp + 0xc]
test edi, edi
je 0x410170
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x40]
inc ecx
mov dword [esp + 8], 0
xor ebp, ebp
mov dword [esp], ecx
mov edi, edx
jmp 0x4100d5
mov ecx, dword [esp + 0x18]
and esi, 0xff
imul esi, ecx
and edx, 0xff
mov ecx, dword [esp + 0x14]
imul edx, ecx
and ebx, 0xff
add esi, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 8], 1
imul ebx, edx
add ebx, esi
mov esi, dword [esp]
shr ebx, 0xf
mov byte [esi - 1], bl
mov edx, dword [esp]
inc ebp
inc edx
cmp ebp, dword [esp + 0xc]
mov dword [esp], edx
je 0x40fb55
mov dl, byte [eax]
mov bl, byte [eax + 2]
movzx esi, byte [eax + 1]
add eax, 3
cmp dl, bl
jne 0x410087
mov ecx, esi
cmp dl, cl
jne 0x410087
mov edx, dword [esp]
mov byte [edx - 1], bl
jmp 0x4100c3
mov edi, dword [esp + 0xc]
test edi, edi
je 0x40f979
mov ebp, dword [esp + 0x40]
xor esi, esi
mov eax, ebp
mov edi, dword [esp + 0x1c]
nop
lea esi, [esi]
mov dl, byte [eax]
mov bl, byte [eax + 2]
mov cl, byte [eax + 1]
cmp dl, bl
jne 0x410120
cmp dl, cl
je 0x410128
mov dword [esp + 8], 1
and ecx, 0xff
and edx, 0xff
imul ecx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
and ebx, 0xff
add edx, ecx
imul ebx, edi
add edx, ebx
inc esi
shr edx, 0xf
mov byte [ebp], dl
mov dl, byte [eax + 3]
add eax, 4
mov byte [ebp + 1], dl
add ebp, 2
cmp esi, dword [esp + 0xc]
jne 0x410110
jmp 0x40fcf0
mov dword [esp + 8], 0
jmp 0x40f979