Function at 0x4af560
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
push ebx
mov bl, byte [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x10], esi
je 0x4b05e6
mov al, byte [eax + 8]
test al, 4
je 0x4af5a6
cmp al, 3
je 0x4b05e6
cmp dword [esp + 0x28], 0
je 0x4b05e6
movzx eax, al
cmp eax, 6
ja case.0x4af5d2.3
jmp dword [eax*4 + 0x4b05f0]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + 9]
dec eax
cmp eax, 0xf
ja case.0x4af5d2.3
movzx ecx, byte [eax + 0x4b0624]
jmp dword [ecx*4 + 0x4b060c]
cmp dword [esp + 0x10], 0
mov esi, edx
mov edx, 7
jbe case.0x4af5d2.3
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jmp 0x4af600
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 1
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x4af631
mov ecx, 7
sub ecx, edx
mov eax, 0x7f7f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x4af63d
mov edx, 7
inc esi
jmp 0x4af63e
dec edx
sub dword [esp + 0x18], 1
jne 0x4af600
jmp case.0x4af5d2.3
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 6
je 0x4af6fa
cmp dword [esp + 0x10], 0
jbe case.0x4af5d2.3
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
nop
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 3
movzx cx, al
cmp cx, word [edi + 8]
jne 0x4af6a3
mov ecx, 6
sub ecx, edx
mov eax, 0x3f3f
sar eax, cl
mov ecx, dword [esp + 0x2c]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x4af6d9
movzx eax, al
lea ecx, [eax*4]
or ecx, eax
add ecx, ecx
add ecx, ecx
or ecx, eax
add ecx, ecx
add ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x34]
mov al, byte [ecx + eax]
mov ecx, 6
sub ecx, edx
mov ebx, 0x3f3f
sar ebx, cl
shr al, 6
mov ecx, edx
and bl, byte [esi]
shl al, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x4af6e9
mov edx, 6
inc esi
jmp 0x4af6ec
sub edx, 2
sub ebp, 1
jne 0x4af670
jmp case.0x4af5d2.3
cmp dword [esp + 0x10], 0
jbe case.0x4af5d2.3
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 3
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x4af746
mov ecx, 6
sub ecx, edx
mov eax, 0x3f3f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x4af752
mov edx, 6
inc esi
jmp 0x4af755
sub edx, 2
sub dword [esp + 0x18], 1
jne 0x4af715
jmp case.0x4af5d2.3
cmp dword [esp + 0x34], 0
mov esi, edx
mov edx, 4
je 0x4af7fe
cmp dword [esp + 0x10], 0
jbe case.0x4af5d2.3
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 0xf
movzx cx, al
cmp cx, word [edi + 8]
jne 0x4af7b9
mov ecx, 4
sub ecx, edx
mov eax, 0xf0f
sar eax, cl
mov ecx, dword [esp + 0x2c]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x4af7e1
movzx eax, al
mov ecx, eax
shl ecx, 4
or ecx, eax
mov eax, dword [esp + 0x34]
mov al, byte [ecx + eax]
mov ecx, 4
sub ecx, edx
mov ebx, 0xf0f
sar ebx, cl
shr al, 4
mov ecx, edx
and bl, byte [esi]
shl al, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x4af7f1
mov edx, 4
inc esi
jmp 0x4af7f4
sub edx, 4
sub ebp, 1
jne 0x4af786
jmp case.0x4af5d2.3
cmp dword [esp + 0x10], 0
jbe case.0x4af5d2.3
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
lea esp, [esp]
mov bl, byte [esi]
mov cl, dl
mov al, bl
shr al, cl
and al, 0xf
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x4af851
mov ecx, 4
sub ecx, edx
mov eax, 0xf0f
sar eax, cl
mov ecx, edx
and al, bl
mov byte [esi], al
mov bl, byte [edi + 8]
shl bl, cl
or bl, al
mov byte [esi], bl
test edx, edx
jne 0x4af85d
mov edx, 4
inc esi
jmp 0x4af860
sub edx, 4
sub dword [esp + 0x18], 1
jne 0x4af820
jmp case.0x4af5d2.3
cmp dword [esp + 0x34], 0
je 0x4af8b4
test esi, esi
jbe case.0x4af5d2.3
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x34]
lea esp, [esp]
mov al, byte [edx]
movzx bx, al
cmp bx, word [edi + 8]
jne 0x4af8a1
mov al, byte [ebp + 8]
jmp 0x4af8a7
movzx eax, al
mov al, byte [eax + esi]
mov byte [edx], al
inc edx
sub ecx, 1
jne 0x4af890
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
movzx cx, byte [edx]
cmp cx, word [edi + 8]
jne 0x4af8d5
mov cl, byte [esi + 8]
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x4af8c6
jmp case.0x4af5d2.3
test edi, edi
je 0x4af94d
test esi, esi
jbe case.0x4af5d2.3
mov eax, esi
mov dword [esp + 0x18], eax
mov al, byte [edx]
mov cl, byte [edx + 1]
movzx si, al
mov ebp, pe_nt_image_headers32
imul si, bp
movzx bp, cl
add si, bp
mov ebp, dword [esp + 0x28]
cmp si, word [ebp + 8]
jne 0x4af923
mov esi, dword [esp + 0x2c]
mov cl, byte [esi + 9]
mov byte [edx], cl
mov al, byte [esi + 8]
jmp 0x4af93b
movzx esi, cl
mov cl, bl
shr esi, cl
movzx ecx, al
mov eax, dword [edi + esi*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ecx, 8
mov byte [edx], cl
mov byte [edx + 1], al
add edx, 2
sub dword [esp + 0x18], 1
jne 0x4af8f2
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x28]
mov eax, esi
mov esi, dword [esp + 0x2c]
nop
movzx cx, byte [edx]
mov ebx, pe_nt_image_headers32
imul cx, bx
movzx bx, byte [edx + 1]
add cx, bx
cmp cx, word [edi + 8]
jne 0x4af988
movzx ecx, byte [esi + 9]
mov byte [edx], cl
movzx ecx, byte [esi + 8]
mov byte [edx + 1], cl
add edx, 2
sub eax, 1
jne 0x4af960
jmp case.0x4af5d2.3
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x4afa91
cmp dword [esp + 0x34], 0
je 0x4afa31
test esi, esi
jbe case.0x4af5d2.3
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, esi
mov esi, dword [esp + 0x34]
add edx, 2
jmp 0x4af9d0
mov al, byte [edx - 2]
movzx bx, al
cmp bx, word [edi + 2]
jne 0x4afa06
movzx bx, byte [edx - 1]
cmp bx, word [edi + 4]
jne 0x4afa06
movzx bx, byte [edx]
cmp bx, word [edi + 6]
jne 0x4afa06
movzx eax, byte [ebp + 2]
mov byte [edx - 2], al
movzx eax, byte [ebp + 4]
mov byte [edx - 1], al
movzx eax, byte [ebp + 6]
jmp 0x4afa22
movzx eax, al
movzx eax, byte [eax + esi]
mov byte [edx - 2], al
movzx eax, byte [edx - 1]
movzx eax, byte [eax + esi]
mov byte [edx - 1], al
movzx eax, byte [edx]
movzx eax, byte [eax + esi]
mov byte [edx], al
add edx, 3
sub ecx, 1
jne 0x4af9d0
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x2c]
mov eax, esi
mov esi, dword [esp + 0x28]
add edx, 2
jmp 0x4afa50
movzx cx, byte [edx - 2]
cmp cx, word [esi + 2]
jne 0x4afa84
movzx cx, byte [edx - 1]
cmp cx, word [esi + 4]
jne 0x4afa84
movzx cx, byte [edx]
cmp cx, word [esi + 6]
jne 0x4afa84
movzx ecx, byte [edi + 2]
mov byte [edx - 2], cl
movzx ecx, byte [edi + 4]
mov byte [edx - 1], cl
movzx ecx, byte [edi + 6]
mov byte [edx], cl
add edx, 3
sub eax, 1
jne 0x4afa50
jmp case.0x4af5d2.3
test edi, edi
je 0x4afbb5
test esi, esi
jbe case.0x4af5d2.3
mov ebp, dword [esp + 0x28]
lea eax, [edx + 2]
mov edx, esi
mov dword [esp + 0x14], edx
mov edi, edi
mov dl, byte [eax - 2]
mov cl, byte [eax - 1]
movzx dx, dl
mov esi, pe_nt_image_headers32
imul dx, si
movzx si, cl
add dx, si
cmp dx, word [ebp + 2]
jne 0x4afb36
movzx dx, byte [eax]
mov esi, pe_nt_image_headers32
imul dx, si
movzx si, byte [eax + 1]
add dx, si
cmp dx, word [ebp + 4]
jne 0x4afb36
movzx dx, byte [eax + 2]
mov esi, pe_nt_image_headers32
imul dx, si
movzx si, byte [eax + 3]
add dx, si
cmp dx, word [ebp + 6]
jne 0x4afb36
mov esi, dword [esp + 0x2c]
movzx ecx, byte [esi + 3]
mov byte [eax - 2], cl
movzx edx, byte [esi + 2]
mov byte [eax - 1], dl
movzx ecx, byte [esi + 5]
mov byte [eax], cl
movzx edx, byte [esi + 4]
mov byte [eax + 1], dl
movzx ecx, byte [esi + 7]
mov byte [eax + 2], cl
movzx edx, byte [esi + 6]
mov byte [eax + 3], dl
jmp 0x4afba2
movzx esi, cl
movzx edx, bl
mov cl, dl
shr esi, cl
movzx ecx, byte [eax - 2]
mov esi, dword [edi + esi*4]
movzx esi, word [esi + ecx*2]
mov ecx, esi
shr ecx, 8
mov byte [eax - 2], cl
mov dword [esp + 0x18], esi
movzx ecx, byte [esp + 0x18]
movzx esi, byte [eax + 1]
mov byte [eax - 1], cl
mov cl, dl
shr esi, cl
movzx ecx, byte [eax]
mov esi, dword [edi + esi*4]
movzx esi, word [esi + ecx*2]
mov ecx, esi
shr ecx, 8
mov dword [esp + 0x18], esi
movzx esi, byte [eax + 3]
mov byte [eax], cl
movzx ecx, byte [esp + 0x18]
mov byte [eax + 1], cl
mov cl, dl
movzx edx, byte [eax + 2]
shr esi, cl
mov ecx, dword [edi + esi*4]
movzx ecx, word [ecx + edx*2]
mov edx, ecx
shr edx, 8
mov byte [eax + 2], dl
mov byte [eax + 3], cl
add eax, 6
sub dword [esp + 0x14], 1
jne 0x4afab0
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x2c]
mov eax, esi
mov esi, dword [esp + 0x28]
add edx, 2
lea ebx, [ebx]
movzx cx, byte [edx - 2]
mov ebx, pe_nt_image_headers32
imul cx, bx
movzx bx, byte [edx - 1]
add cx, bx
cmp cx, word [esi + 2]
jne 0x4afc4c
movzx cx, byte [edx]
mov ebx, pe_nt_image_headers32
imul cx, bx
movzx bx, byte [edx + 1]
add cx, bx
cmp cx, word [esi + 4]
jne 0x4afc4c
movzx cx, byte [edx + 2]
mov ebx, pe_nt_image_headers32
imul cx, bx
movzx bx, byte [edx + 3]
add cx, bx
cmp cx, word [esi + 6]
jne 0x4afc4c
movzx ecx, byte [edi + 3]
mov byte [edx - 2], cl
movzx ecx, byte [edi + 2]
mov byte [edx - 1], cl
movzx ecx, byte [edi + 5]
mov byte [edx], cl
movzx ecx, byte [edi + 4]
mov byte [edx + 1], cl
movzx ecx, byte [edi + 7]
mov byte [edx + 2], cl
movzx ecx, byte [edi + 6]
mov byte [edx + 3], cl
add edx, 6
sub eax, 1
jne 0x4afbd0
jmp case.0x4af5d2.3
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x4afd8b
cmp dword [esp + 0x3c], 0
je 0x4afd20
cmp dword [esp + 0x38], 0
je 0x4afd20
cmp dword [esp + 0x34], 0
je 0x4afd20
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x4af5d2.3
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
jmp 0x4afcb0
movzx ax, byte [ecx + 1]
movzx eax, ax
mov edx, 0xff
cmp ax, dx
jne 0x4afccb
movzx eax, byte [ecx]
mov edx, dword [esp + 0x34]
jmp 0x4afd0b
test ax, ax
jne 0x4afcd9
mov edx, dword [esp + 0x2c]
mov al, byte [edx + 8]
jmp 0x4afd0e
movzx ebx, byte [ecx]
movzx bx, byte [ebx + edi]
sub edx, eax
imul bx, ax
imul dx, word [ebp + 8]
add dx, bx
mov eax, 0x80
add dx, ax
movzx eax, dx
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
movzx eax, dl
mov edx, dword [esp + 0x38]
mov al, byte [eax + edx]
mov byte [esi], al
add ecx, 2
inc esi
sub dword [esp + 0x18], 1
jne 0x4afcb0
jmp case.0x4af5d2.3
cmp dword [esp + 0x10], 0
mov ecx, edx
mov esi, edx
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xff
jne 0x4afd3e
mov dl, byte [ecx]
jmp 0x4afd7b
test al, al
jne 0x4afd4b
mov eax, dword [esp + 0x2c]
mov dl, byte [eax + 8]
jmp 0x4afd7b
movzx bx, byte [ecx]
movzx ax, al
mov edx, 0xff
imul bx, ax
sub edx, eax
imul dx, word [ebp + 8]
add dx, bx
mov eax, 0x80
add dx, ax
movzx eax, dx
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
mov byte [esi], dl
add ecx, 2
inc esi
sub edi, 1
jne 0x4afd33
jmp case.0x4af5d2.3
test edi, edi
je 0x4afe89
test ecx, ecx
je 0x4afe89
cmp dword [esp + 0x48], 0
je 0x4afe89
cmp dword [esp + 0x10], 0
mov esi, edx
jbe case.0x4af5d2.3
mov eax, dword [esp + 0x10]
inc edx
mov dword [esp + 0x18], eax
lea esp, [esp]
movzx cx, byte [edx + 1]
mov eax, pe_nt_image_headers32
imul cx, ax
movzx ax, byte [edx + 2]
add cx, ax
movzx eax, cx
mov ecx, 0xffff
cmp ax, cx
jne 0x4afdf7
movzx eax, byte [edx]
mov cl, bl
shr eax, cl
movzx ecx, byte [edx - 1]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
jmp 0x4afe69
test ax, ax
jne 0x4afe0d
mov ebp, dword [esp + 0x2c]
mov al, byte [ebp + 9]
mov byte [esi], al
mov cl, byte [ebp + 8]
mov byte [esi + 1], cl
jmp 0x4afe73
movzx edi, byte [edx]
mov ebp, dword [esp + 0x48]
mov cl, bl
shr edi, cl
movzx ecx, byte [edx - 1]
mov edi, dword [ebp + edi*4]
movzx ecx, word [edi + ecx*2]
mov edi, dword [esp + 0x30]
movzx edi, word [edi + 8]
movzx eax, ax
imul ecx, eax
mov ebp, 0xffff
sub ebp, eax
imul edi, ebp
lea ecx, [ecx + edi + 0x8000]
mov eax, ecx
shr eax, 0x10
add eax, ecx
shr eax, 0x10
movzx eax, ax
movzx edi, al
mov cl, bl
shr edi, cl
mov ecx, dword [esp + 0x44]
shr eax, 8
mov ecx, dword [ecx + edi*4]
movzx eax, word [ecx + eax*2]
mov edi, dword [esp + 0x40]
mov ecx, eax
shr ecx, 8
mov byte [esi + 1], al
mov byte [esi], cl
add edx, 4
add esi, 2
sub dword [esp + 0x18], 1
jne 0x4afdc0
jmp case.0x4af5d2.3
cmp dword [esp + 0x10], 0
mov esi, edx
jbe case.0x4af5d2.3
mov edi, dword [esp + 0x10]
lea ecx, [edx + 3]
mov edx, dword [esp + 0x2c]
movzx ax, byte [ecx - 1]
mov ebx, pe_nt_image_headers32
imul ax, bx
movzx bx, byte [ecx]
add ax, bx
movzx eax, ax
mov ebx, 0xffff
cmp ax, bx
jne 0x4afecc
mov ax, word [ecx - 3]
mov word [esi], ax
jmp 0x4aff2d
test ax, ax
jne 0x4afedd
movzx eax, byte [edx + 9]
mov byte [esi], al
movzx eax, byte [edx + 8]
jmp 0x4aff2a
movzx dx, byte [ecx - 3]
mov ebx, pe_nt_image_headers32
imul dx, bx
movzx bx, byte [ecx - 2]
add dx, bx
movzx ebx, word [ebp + 8]
movzx eax, ax
movzx edx, dx
imul edx, eax
mov ebp, 0xffff
sub ebp, eax
imul ebx, ebp
mov ebp, dword [esp + 0x30]
lea edx, [edx + ebx + 0x8000]
mov eax, edx
shr eax, 0x10
add eax, edx
shr eax, 0x10
mov edx, eax
shr edx, 8
mov byte [esi], dl
mov edx, dword [esp + 0x2c]
mov byte [esi + 1], al
add ecx, 4
add esi, 2
sub edi, 1
jne 0x4afea1
jmp case.0x4af5d2.3
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x4b01c9
cmp dword [esp + 0x3c], 0
je 0x4b00c1
cmp dword [esp + 0x38], 0
je 0x4b00c1
cmp dword [esp + 0x34], 0
je 0x4b00c1
test esi, esi
jbe case.0x4af5d2.3
mov ecx, dword [esp + 0x10]
lea esi, [edx + 2]
lea edi, [edx + 1]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x34]
mov edi, edi
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x4affbb
movzx eax, byte [edi - 1]
movzx eax, byte [eax + ecx]
mov byte [esi - 2], al
movzx eax, byte [edi]
movzx eax, byte [eax + ecx]
mov byte [esi - 1], al
movzx eax, byte [edi + 1]
movzx eax, byte [eax + ecx]
mov byte [esi], al
jmp 0x4b00ab
test al, al
jne 0x4affd8
movzx eax, byte [edx + 2]
mov byte [esi - 2], al
movzx eax, byte [edx + 4]
mov byte [esi - 1], al
movzx eax, byte [edx + 6]
mov byte [esi], al
jmp 0x4b00ab
movzx ebx, byte [edi - 1]
mov edx, dword [esp + 0x3c]
movzx ebx, byte [ebx + edx]
mov ebp, dword [esp + 0x30]
mov bp, word [ebp + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
mov ebp, 0x80
add bx, bp
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x38]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov ebp, dword [esp + 0x30]
mov byte [esi - 2], bl
movzx ebx, byte [edi]
movzx ebx, byte [ebx + edx]
mov bp, word [ebp + 4]
imul bx, ax
imul bp, cx
add bx, bp
mov ebp, 0x80
add bx, bp
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x38]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov byte [esi - 1], bl
movzx ebx, byte [edi + 1]
movzx dx, byte [ebx + edx]
imul dx, ax
mov eax, dword [esp + 0x30]
mov ax, word [eax + 6]
imul ax, cx
add dx, ax
mov ecx, 0x80
add dx, cx
movzx eax, dx
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
movzx eax, dl
mov ecx, ebp
mov dl, byte [eax + ecx]
mov ecx, dword [esp + 0x34]
mov byte [esi], dl
mov edx, dword [esp + 0x2c]
add edi, 4
add esi, 3
sub dword [esp + 0x18], 1
jne 0x4aff90
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
lea esi, [edx + 2]
lea edi, [edx + 1]
mov dword [esp + 0x18], eax
jmp 0x4b00e0
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x4b00fe
movzx edx, byte [edi - 1]
mov byte [esi - 2], dl
mov al, byte [edi]
mov byte [esi - 1], al
movzx edx, byte [edi + 1]
mov byte [esi], dl
jmp 0x4b01b3
test al, al
jne 0x4b011a
movzx eax, byte [ecx + 2]
mov byte [esi - 2], al
mov dl, byte [ecx + 4]
mov byte [esi - 1], dl
movzx eax, byte [ecx + 6]
mov byte [esi], al
jmp 0x4b01b3
movzx ebx, byte [edi - 1]
mov edx, dword [esp + 0x2c]
mov bp, word [edx + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
mov ebp, 0x80
add bx, bp
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
sar ebx, 8
mov byte [esi - 2], bl
movzx ebx, word [edx + 4]
movzx bp, byte [edi]
imul bx, cx
imul bp, ax
add bx, bp
mov ebp, 0x80
add bx, bp
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
sar ebx, 8
mov byte [esi - 1], bl
movzx ebx, byte [edi + 1]
mov dx, word [edx + 6]
imul bx, ax
imul dx, cx
add bx, dx
mov eax, 0x80
add bx, ax
movzx eax, bx
mov ecx, eax
shr ecx, 8
add ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, dword [esp + 0x2c]
add edi, 4
add esi, 3
sub dword [esp + 0x18], 1
jne 0x4b00e0
jmp case.0x4af5d2.3
test edi, edi
je 0x4b0436
test ecx, ecx
je 0x4b0436
cmp dword [esp + 0x48], 0
je 0x4b0436
test esi, esi
jbe case.0x4af5d2.3
mov ecx, esi
lea eax, [edx + 2]
inc edx
mov dword [esp + 0x1c], ecx
jmp 0x4b0200
movzx cx, byte [edx + 5]
mov esi, pe_nt_image_headers32
imul cx, si
movzx si, byte [edx + 6]
add cx, si
movzx esi, cx
mov ecx, 0xffff
cmp si, cx
jne 0x4b02a7
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [edi + esi*4]
movzx esi, word [esi + ecx*2]
mov ecx, esi
shr ecx, 8
mov byte [eax - 2], cl
mov dword [esp + 0x14], esi
movzx ecx, byte [esp + 0x14]
mov byte [eax - 1], cl
movzx esi, byte [edx + 2]
movzx ecx, byte [esp + 0x18]
shr esi, cl
movzx ecx, byte [edx + 1]
mov esi, dword [edi + esi*4]
movzx esi, word [esi + ecx*2]
mov ecx, esi
shr ecx, 8
mov byte [eax], cl
mov dword [esp + 0x14], esi
movzx ecx, byte [esp + 0x14]
mov byte [eax + 1], cl
movzx esi, byte [edx + 4]
movzx ecx, byte [esp + 0x18]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [edi + esi*4]
movzx esi, word [esi + ecx*2]
mov ecx, esi
shr ecx, 8
mov dword [esp + 0x14], esi
mov byte [eax + 2], cl
movzx ecx, byte [esp + 0x14]
jmp 0x4b041d
test si, si
jne 0x4b02ef
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 3]
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 2]
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 5]
mov byte [eax], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 4]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 7]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 6]
jmp 0x4b041d
movzx edi, si
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x30]
imul ecx, edi
movzx esi, word [esi + 2]
mov ebp, 0xffff
sub ebp, edi
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
movzx ecx, word [esp + 0x4c]
shr esi, 0x10
movzx ebx, si
mov dword [esp + 0x14], ecx
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov byte [eax - 1], cl
mov ebx, ecx
movzx ecx, byte [esp + 0x18]
shr ebx, 8
mov byte [eax - 2], bl
movzx esi, byte [edx + 2]
shr esi, cl
movzx ecx, byte [edx + 1]
mov ebx, dword [esp + 0x48]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x30]
imul ecx, edi
movzx esi, word [esi + 4]
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
mov ecx, dword [esp + 0x14]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebx, ecx
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x18]
shr ebx, 8
mov byte [eax], bl
movzx esi, byte [edx + 4]
mov ebx, dword [esp + 0x48]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x30]
imul ecx, edi
movzx esi, word [esi + 6]
imul esi, ebp
lea ecx, [ecx + esi + 0x8000]
mov esi, ecx
shr esi, 0x10
add esi, ecx
mov ecx, dword [esp + 0x14]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + esi*4]
mov edi, dword [esp + 0x40]
shr ebx, 8
movzx ecx, word [ecx + ebx*2]
mov ebx, ecx
shr ebx, 8
mov byte [eax + 2], bl
mov bl, byte [esp + 0x4c]
mov byte [eax + 3], cl
add edx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x4b0200
jmp case.0x4af5d2.3
test esi, esi
jbe case.0x4af5d2.3
lea eax, [edx + 2]
lea ecx, [edx + 7]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov edi, edi
movzx dx, byte [ecx - 1]
mov edi, pe_nt_image_headers32
imul dx, di
movzx di, byte [ecx]
add dx, di
movzx edx, dx
mov edi, 0xffff
cmp dx, di
jne 0x4b0485
mov edx, dword [ecx - 7]
mov dword [eax - 2], edx
mov dx, word [ecx - 3]
mov word [eax + 2], dx
jmp 0x4b058f
test dx, dx
jne 0x4b04b5
movzx edx, byte [esi + 3]
mov byte [eax - 2], dl
movzx edx, byte [esi + 2]
mov byte [eax - 1], dl
movzx edx, byte [esi + 5]
mov byte [eax], dl
movzx edx, byte [esi + 4]
mov byte [eax + 1], dl
movzx edx, byte [esi + 7]
mov byte [eax + 2], dl
movzx edx, byte [esi + 6]
jmp 0x4b058c
movzx esi, byte [ecx - 5]
mov edi, pe_nt_image_headers32
imul si, di
movzx edi, byte [ecx - 4]
add si, di
movzx esi, si
mov dword [esp + 0x18], esi
movzx esi, byte [ecx - 3]
mov edi, pe_nt_image_headers32
imul si, di
movzx edi, byte [ecx - 2]
mov ebp, dword [esp + 0x2c]
add si, di
movzx esi, si
mov dword [esp + 0x14], esi
movzx esi, dx
movzx dx, byte [ecx - 7]
mov ebx, pe_nt_image_headers32
imul dx, bx
movzx bx, byte [ecx - 6]
add dx, bx
movzx ebx, word [ebp + 2]
movzx edx, dx
imul edx, esi
mov edi, 0xffff
sub edi, esi
imul ebx, edi
lea ebx, [edx + ebx + 0x8000]
mov edx, ebx
shr edx, 0x10
add edx, ebx
shr edx, 0x10
mov ebx, edx
mov byte [eax - 1], dl
shr ebx, 8
mov byte [eax - 2], bl
movzx edx, word [ebp + 4]
movzx ebx, word [esp + 0x18]
imul edx, edi
imul ebx, esi
lea ebx, [edx + ebx + 0x8000]
mov edx, ebx
shr edx, 0x10
add edx, ebx
shr edx, 0x10
mov ebx, edx
mov byte [eax + 1], dl
shr ebx, 8
mov byte [eax], bl
movzx edx, word [ebp + 6]
imul edx, edi
movzx edi, word [esp + 0x14]
imul edi, esi
lea esi, [edx + edi + 0x8000]
mov edx, esi
shr edx, 0x10
add edx, esi
shr edx, 0x10
mov ebx, edx
shr ebx, 8
mov byte [eax + 2], bl
mov esi, ebp
mov byte [eax + 3], dl
add ecx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x4b0450
mov edx, dword [esp + 0x24]
mov al, byte [edx + 8]
test al, 4
je 0x4b05e6
dec byte [edx + 0xa]
mov cl, byte [edx + 0xa]
and al, 0xfb
mov byte [edx + 8], al
mov al, byte [edx + 9]
imul cl
mov byte [edx + 0xb], al
cmp al, 8
movzx eax, al
jb 0x4b05d8
shr eax, 3
imul eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [edx + 4], eax
pop ebx
add esp, 0x10
ret
imul eax, dword [esp + 0x10]
add eax, 7
shr eax, 3
mov dword [edx + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret