Function at 0x4ace00
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [esp], ecx
je 0x4addb2
mov al, byte [eax + 8]
test al, 4
push ebp
je 0x4ace35
cmp al, 3
je 0x4addb1
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4addb1
jmp 0x4ace39
mov ebp, dword [esp + 0x20]
movzx eax, al
cmp eax, 6
ja case.default.0x4ace48
push ebx
push esi
push edi
jmp dword [eax*4 + 0x4addb8]
mov edx, dword [esp + 0x24]
movzx eax, byte [edx + 9]
add eax, 0xffffffff
cmp eax, 0xf
ja case.0x4ace6a.2
movzx eax, byte [eax + 0x4addec]
jmp dword [eax*4 + 0x4addd4]
test ecx, ecx
mov esi, dword [esp + 0x28]
mov edx, 7
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x30]
mov ebp, ecx
mov bl, byte [esi]
mov al, bl
mov cl, dl
shr al, cl
and al, 1
movzx cx, al
mov eax, dword [esp + 0x2c]
cmp cx, word [eax + 8]
jne 0x4acebd
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 0x4acecb
mov edx, 7
add esi, 1
jmp 0x4acece
sub edx, 1
sub ebp, 1
jne 0x4ace88
jmp case.0x4ace6a.2
mov edi, dword [esp + 0x38]
test edi, edi
mov esi, dword [esp + 0x28]
mov edx, 6
je 0x4acf8e
test ecx, ecx
jbe case.0x4ace6a.2
mov dword [esp + 0x14], ecx
lea esp, [esp]
mov bl, byte [esi]
mov ebp, dword [esp + 0x2c]
mov cl, dl
mov al, bl
shr al, cl
and al, 3
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x4acf37
mov ecx, 6
sub ecx, edx
mov eax, 0x3f3f
sar eax, cl
mov ecx, dword [esp + 0x30]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x4acf69
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 al, byte [ecx + edi]
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
test edx, edx
mov byte [esi], bl
jne 0x4acf7b
mov edx, 6
add esi, 1
jmp 0x4acf7e
sub edx, 2
sub dword [esp + 0x14], 1
jne 0x4acf00
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x30]
mov ebp, ecx
lea esp, [esp]
mov bl, byte [esi]
mov al, bl
mov cl, dl
shr al, cl
and al, 3
movzx cx, al
mov eax, dword [esp + 0x2c]
cmp cx, word [eax + 8]
jne 0x4acfd5
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 0x4acfe3
mov edx, 6
add esi, 1
jmp 0x4acfe6
sub edx, 2
sub ebp, 1
jne 0x4acfa0
jmp case.0x4ace6a.2
mov edi, dword [esp + 0x38]
test edi, edi
mov esi, dword [esp + 0x28]
mov edx, 4
je 0x4ad08d
test ecx, ecx
jbe case.0x4ace6a.2
mov dword [esp + 0x14], ecx
mov bl, byte [esi]
mov ebp, dword [esp + 0x2c]
mov cl, dl
mov al, bl
shr al, cl
and al, 0xf
movzx cx, al
cmp cx, word [ebp + 8]
jne 0x4ad048
mov ecx, 4
sub ecx, edx
mov eax, 0xf0f
sar eax, cl
mov ecx, dword [esp + 0x30]
and al, bl
mov byte [esi], al
mov bl, byte [ecx + 8]
mov ecx, edx
shl bl, cl
jmp 0x4ad06c
movzx eax, al
mov ecx, eax
shl ecx, 4
or ecx, eax
mov al, byte [ecx + edi]
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
test edx, edx
mov byte [esi], bl
jne 0x4ad07e
mov edx, 4
add esi, 1
jmp 0x4ad081
sub edx, 4
sub dword [esp + 0x14], 1
jne 0x4ad011
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x30]
mov ebp, ecx
jmp 0x4ad0a0
mov bl, byte [esi]
mov al, bl
mov cl, dl
shr al, cl
and al, 0xf
movzx cx, al
mov eax, dword [esp + 0x2c]
cmp cx, word [eax + 8]
jne 0x4ad0d5
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 0x4ad0e3
mov edx, 4
add esi, 1
jmp 0x4ad0e6
sub edx, 4
sub ebp, 1
jne 0x4ad0a0
jmp case.0x4ace6a.2
mov esi, dword [esp + 0x38]
test esi, esi
mov eax, dword [esp + 0x28]
je 0x4ad136
test ecx, ecx
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x30]
mov edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
movzx bx, cl
cmp bx, word [ebp + 8]
jne 0x4ad121
mov cl, byte [edi + 8]
jmp 0x4ad127
movzx ecx, cl
mov cl, byte [ecx + esi]
mov byte [eax], cl
add eax, 1
sub edx, 1
jne 0x4ad110
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov esi, dword [esp + 0x30]
movzx dx, byte [eax]
cmp dx, word [ebp + 8]
jne 0x4ad151
mov dl, byte [esi + 8]
mov byte [eax], dl
add eax, 1
sub ecx, 1
jne 0x4ad142
jmp case.0x4ace6a.2
mov esi, dword [esp + 0x44]
test esi, esi
mov eax, dword [esp + 0x28]
je 0x4ad1d1
test ecx, ecx
jbe case.0x4ace6a.2
mov bl, byte [esp + 0x50]
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
mov dl, byte [eax]
mov cl, byte [eax + 1]
movzx di, dl
movzx bp, cl
shl di, 8
add di, bp
mov ebp, dword [esp + 0x2c]
cmp di, word [ebp + 8]
jne 0x4ad1ac
mov edi, dword [esp + 0x30]
mov dl, byte [edi + 9]
mov byte [eax], dl
mov cl, byte [edi + 8]
jmp 0x4ad1bf
movzx edi, cl
mov cl, bl
shr edi, cl
movzx edx, dl
mov ecx, dword [esi + edi*4]
movzx ecx, word [ecx + edx*2]
mov byte [eax], ch
mov byte [eax + 1], cl
add eax, 2
sub dword [esp + 0x14], 1
jne 0x4ad180
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov esi, dword [esp + 0x30]
lea ecx, [ecx]
movzx dx, byte [eax]
movzx di, byte [eax + 1]
shl dx, 8
add dx, di
cmp dx, word [ebp + 8]
jne 0x4ad203
movzx edx, byte [esi + 9]
mov byte [eax], dl
movzx edx, byte [esi + 8]
mov byte [eax + 1], dl
add eax, 2
sub ecx, 1
jne 0x4ad1e0
jmp case.0x4ace6a.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x4ad2f5
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4ad2a1
test ecx, ecx
jbe case.0x4ace6a.2
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
add eax, 2
mov edi, ecx
jmp 0x4ad240
mov cl, byte [eax - 2]
movzx bx, cl
cmp bx, word [ebp + 2]
jne 0x4ad276
movzx bx, byte [eax - 1]
cmp bx, word [ebp + 4]
jne 0x4ad276
movzx bx, byte [eax]
cmp bx, word [ebp + 6]
jne 0x4ad276
movzx ecx, byte [esi + 2]
mov byte [eax - 2], cl
movzx ecx, byte [esi + 4]
mov byte [eax - 1], cl
movzx ecx, byte [esi + 6]
jmp 0x4ad292
movzx ecx, cl
movzx ecx, byte [ecx + edx]
mov byte [eax - 2], cl
movzx ecx, byte [eax - 1]
movzx ecx, byte [ecx + edx]
mov byte [eax - 1], cl
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
mov byte [eax], cl
add eax, 3
sub edi, 1
jne 0x4ad240
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
add eax, 2
movzx dx, byte [eax - 2]
cmp dx, word [ebp + 2]
jne 0x4ad2e8
movzx dx, byte [eax - 1]
cmp dx, word [ebp + 4]
jne 0x4ad2e8
movzx dx, byte [eax]
cmp dx, word [ebp + 6]
jne 0x4ad2e8
movzx edx, byte [esi + 2]
mov byte [eax - 2], dl
movzx edx, byte [esi + 4]
mov byte [eax - 1], dl
movzx edx, byte [esi + 6]
mov byte [eax], dl
add eax, 3
sub ecx, 1
jne 0x4ad2b4
jmp case.0x4ace6a.2
mov esi, dword [esp + 0x44]
test esi, esi
je 0x4ad3fe
test ecx, ecx
jbe case.0x4ace6a.2
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
add eax, 2
mov dword [esp + 0x14], ecx
jmp 0x4ad320
mov bl, byte [eax - 2]
mov cl, byte [eax - 1]
movzx dx, bl
movzx bp, cl
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x2c]
cmp dx, word [ebp + 2]
jne 0x4ad39f
movzx dx, byte [eax]
movzx bp, byte [eax + 1]
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x2c]
cmp dx, word [ebp + 4]
jne 0x4ad39f
movzx dx, byte [eax + 2]
movzx bp, byte [eax + 3]
shl dx, 8
add dx, bp
mov ebp, dword [esp + 0x2c]
cmp dx, word [ebp + 6]
jne 0x4ad39f
movzx ecx, byte [edi + 3]
mov byte [eax - 2], cl
movzx edx, byte [edi + 2]
mov byte [eax - 1], dl
movzx ecx, byte [edi + 5]
mov byte [eax], cl
movzx edx, byte [edi + 4]
mov byte [eax + 1], dl
movzx ecx, byte [edi + 7]
mov byte [eax + 2], cl
movzx edx, byte [edi + 6]
mov byte [eax + 3], dl
jmp 0x4ad3eb
movzx edx, byte [esp + 0x50]
movzx ebp, cl
mov cl, dl
shr ebp, cl
movzx ecx, bl
mov ebx, dword [esi + ebp*4]
movzx ecx, word [ebx + ecx*2]
movzx ebx, byte [eax + 1]
mov byte [eax - 1], cl
mov cl, dl
shr ebx, cl
mov byte [eax - 2], ch
movzx ecx, byte [eax]
mov ebx, dword [esi + ebx*4]
movzx ecx, word [ebx + ecx*2]
movzx ebx, byte [eax + 3]
mov byte [eax + 1], cl
mov cl, dl
movzx edx, byte [eax + 2]
shr ebx, cl
mov byte [eax], ch
mov ecx, dword [esi + ebx*4]
movzx ecx, word [ecx + edx*2]
mov byte [eax + 2], ch
mov byte [eax + 3], cl
add eax, 6
sub dword [esp + 0x14], 1
jne 0x4ad320
jmp case.0x4ace6a.2
test ecx, ecx
jbe case.0x4ace6a.2
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
add eax, 2
movzx dx, byte [eax - 2]
movzx di, byte [eax - 1]
shl dx, 8
add dx, di
cmp dx, word [ebp + 2]
jne 0x4ad47e
movzx dx, byte [eax]
movzx di, byte [eax + 1]
shl dx, 8
add dx, di
cmp dx, word [ebp + 4]
jne 0x4ad47e
movzx dx, byte [eax + 2]
movzx di, byte [eax + 3]
shl dx, 8
add dx, di
cmp dx, word [ebp + 6]
jne 0x4ad47e
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]
mov byte [eax + 3], dl
add eax, 6
sub ecx, 1
jne 0x4ad411
jmp case.0x4ace6a.2
mov eax, dword [esp + 0x24]
cmp byte [eax + 9], 8
jne 0x4ad5cd
mov edi, dword [esp + 0x40]
test edi, edi
je 0x4ad55a
cmp dword [esp + 0x3c], 0
je 0x4ad55a
cmp dword [esp + 0x38], 0
je 0x4ad55a
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x28]
mov esi, ecx
jbe case.0x4ace6a.2
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x14], edx
jmp 0x4ad4e0
movzx ax, byte [ecx + 1]
movzx eax, ax
cmp ax, 0xff
jne 0x4ad4fc
movzx edx, byte [ecx]
mov eax, dword [esp + 0x38]
mov dl, byte [edx + eax]
mov byte [esi], dl
jmp 0x4ad548
test ax, ax
jne 0x4ad50c
mov eax, dword [esp + 0x30]
mov dl, byte [eax + 8]
mov byte [esi], dl
jmp 0x4ad548
movzx ebx, byte [ecx]
movzx bx, byte [ebx + edi]
imul bx, ax
mov edx, 0xff
sub edx, eax
imul dx, word [ebp + 8]
add dx, bx
add dx, 0x80
movzx eax, dx
movzx eax, ax
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
movzx eax, dl
mov edx, dword [esp + 0x3c]
mov al, byte [eax + edx]
mov byte [esi], al
add ecx, 2
add esi, 1
sub dword [esp + 0x14], 1
jne 0x4ad4e0
jmp case.0x4ace6a.2
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x28]
mov esi, ecx
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
mov al, byte [ecx + 1]
cmp al, 0xff
jne 0x4ad57e
mov dl, byte [ecx]
jmp 0x4ad5bb
test al, al
jne 0x4ad58b
mov eax, dword [esp + 0x30]
mov dl, byte [eax + 8]
jmp 0x4ad5bb
movzx bx, byte [ecx]
movzx ax, al
mov edx, 0xff
imul bx, ax
sub edx, eax
imul dx, word [ebp + 8]
add dx, bx
add dx, 0x80
movzx eax, dx
movzx eax, ax
mov edx, eax
shr edx, 8
add edx, eax
sar edx, 8
mov byte [esi], dl
add ecx, 2
add esi, 1
sub edi, 1
jne 0x4ad573
jmp case.0x4ace6a.2
cmp dword [esp + 0x44], 0
je 0x4ad6c9
cmp dword [esp + 0x48], 0
je 0x4ad6c9
cmp dword [esp + 0x4c], 0
je 0x4ad6c9
test ecx, ecx
mov edx, dword [esp + 0x28]
mov esi, edx
jbe case.0x4ace6a.2
mov bl, byte [esp + 0x50]
mov edi, dword [esp + 0x30]
mov eax, ecx
add edx, 1
mov dword [esp + 0x14], eax
lea ecx, [ecx]
movzx cx, byte [edx + 1]
movzx ax, byte [edx + 2]
shl cx, 8
add cx, ax
movzx eax, cx
cmp ax, 0xffff
jne 0x4ad643
movzx eax, byte [edx]
mov ebp, dword [esp + 0x44]
mov cl, bl
shr eax, cl
movzx ecx, byte [edx - 1]
mov eax, dword [ebp + eax*4]
movzx eax, word [eax + ecx*2]
jmp 0x4ad6ae
test ax, ax
jne 0x4ad652
mov cl, byte [edi + 9]
mov byte [esi], cl
mov al, byte [edi + 8]
jmp 0x4ad6b0
movzx edi, byte [edx]
mov ebp, dword [esp + 0x4c]
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 + 0x34]
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 + 0x48]
shr eax, 8
mov ecx, dword [ecx + edi*4]
movzx eax, word [ecx + eax*2]
mov edi, dword [esp + 0x30]
mov byte [esi], ah
mov byte [esi + 1], al
add edx, 4
add esi, 2
sub dword [esp + 0x14], 1
jne 0x4ad610
jmp case.0x4ace6a.2
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x28]
mov edx, ecx
jbe case.0x4ace6a.2
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
add ecx, 3
mov dword [esp + 0x14], eax
lea ecx, [ecx]
movzx ax, byte [ecx - 1]
movzx di, byte [ecx]
shl ax, 8
add ax, di
movzx eax, ax
cmp ax, 0xffff
jne 0x4ad712
mov ax, word [ecx - 3]
mov word [edx], ax
jmp 0x4ad765
test ax, ax
jne 0x4ad723
movzx eax, byte [esi + 9]
mov byte [edx], al
movzx eax, byte [esi + 8]
jmp 0x4ad762
movzx si, byte [ecx - 3]
movzx di, byte [ecx - 2]
shl si, 8
add si, di
movzx edi, word [ebp + 8]
movzx eax, ax
movzx esi, si
imul esi, eax
mov ebx, 0xffff
sub ebx, eax
imul edi, ebx
lea esi, [esi + edi + 0x8000]
mov eax, esi
shr eax, 0x10
add eax, esi
mov esi, dword [esp + 0x30]
shr eax, 0x10
mov byte [edx], ah
mov byte [edx + 1], al
add ecx, 4
add edx, 2
sub dword [esp + 0x14], 1
jne 0x4ad6f0
jmp case.0x4ace6a.2
mov ecx, dword [esp + 0x24]
cmp byte [ecx + 9], 8
jne 0x4ad9eb
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x4ad8f1
cmp dword [esp + 0x3c], 0
je 0x4ad8f1
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x4ad8f1
cmp dword [esp + 0x10], 0
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
lea esi, [edi + 2]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x34]
add edi, 1
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x4ad7fa
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]
jmp 0x4ad8d9
test al, al
jne 0x4ad815
movzx eax, byte [ebx + 2]
mov byte [esi - 2], al
movzx eax, byte [ebx + 4]
mov byte [esi - 1], al
movzx eax, byte [ebx + 6]
jmp 0x4ad8d9
movzx ebx, byte [edi - 1]
movzx ebx, byte [ebx + ebp]
mov bp, word [edx + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x3c]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov ebp, dword [esp + 0x40]
mov byte [esi - 2], bl
movzx ebx, byte [edi]
movzx ebx, byte [ebx + ebp]
mov bp, word [edx + 4]
imul bx, ax
imul bp, cx
add bx, bp
add bx, 0x80
movzx ebx, bx
movzx ebp, bx
mov ebx, ebp
shr ebx, 8
add ebx, ebp
mov ebp, dword [esp + 0x3c]
sar ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx + ebp]
mov ebp, dword [esp + 0x40]
mov byte [esi - 1], bl
movzx ebx, byte [edi + 1]
movzx ebx, byte [ebx + ebp]
imul bx, ax
mov ax, word [edx + 6]
imul ax, cx
add bx, ax
add bx, 0x80
movzx eax, bx
mov ebx, dword [esp + 0x30]
movzx eax, ax
mov ecx, eax
shr ecx, 8
add ecx, eax
sar ecx, 8
movzx eax, cl
mov ecx, dword [esp + 0x3c]
mov al, byte [eax + ecx]
mov ecx, dword [esp + 0x38]
mov byte [esi], al
add edi, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x4ad7d1
jmp case.0x4ace6a.2
cmp dword [esp + 0x10], 0
jbe case.0x4ace6a.2
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea esi, [edi + 2]
add edi, 1
mov dword [esp + 0x14], ecx
mov al, byte [edi + 2]
cmp al, 0xff
jne 0x4ad930
movzx eax, byte [edi - 1]
mov byte [esi - 2], al
mov cl, byte [edi]
mov byte [esi - 1], cl
movzx eax, byte [edi + 1]
mov byte [esi], al
jmp 0x4ad9d5
test al, al
jne 0x4ad94a
movzx ecx, byte [edx + 2]
mov byte [esi - 2], cl
mov al, byte [edx + 4]
mov byte [esi - 1], al
movzx ecx, byte [edx + 6]
jmp 0x4ad9d3
movzx ebx, byte [edi - 1]
mov bp, word [edx + 2]
movzx ax, al
imul bx, ax
mov ecx, 0xff
sub ecx, eax
imul bp, cx
add bx, bp
add bx, 0x80
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
add bx, 0x80
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]
imul bx, ax
mov ax, word [edx + 6]
imul ax, cx
add bx, ax
add bx, 0x80
movzx eax, bx
movzx eax, ax
mov ecx, eax
shr ecx, 8
add ecx, eax
sar ecx, 8
mov byte [esi], cl
add edi, 4
add esi, 3
sub dword [esp + 0x14], 1
jne 0x4ad912
jmp case.0x4ace6a.2
mov ebp, dword [esp + 0x44]
test ebp, ebp
je 0x4adc21
cmp dword [esp + 0x48], 0
je 0x4adc21
cmp dword [esp + 0x4c], 0
je 0x4adc21
mov ecx, dword [esp + 0x10]
test ecx, ecx
jbe case.0x4ace6a.2
mov edx, dword [esp + 0x28]
mov bl, byte [esp + 0x50]
lea eax, [edx + 2]
add edx, 1
mov dword [esp + 0x1c], ecx
jmp 0x4ada30
movzx cx, byte [edx + 5]
movzx si, byte [edx + 6]
shl cx, 8
add cx, si
movzx esi, cx
cmp si, 0xffff
jne 0x4adaa1
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
mov byte [eax - 2], ch
mov byte [eax - 1], cl
movzx esi, byte [edx + 2]
movzx ecx, byte [esp + 0x14]
shr esi, cl
movzx ecx, byte [edx + 1]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
mov byte [eax], ch
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x14]
movzx esi, byte [edx + 4]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [ebp + esi*4]
movzx ecx, word [esi + ecx*2]
jmp 0x4adc05
test si, si
jne 0x4adae9
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 3]
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 2]
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 5]
mov byte [eax], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 4]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 7]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 6]
jmp 0x4adc08
movzx edi, si
movzx esi, byte [edx]
movzx ecx, bl
shr esi, cl
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx - 1]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x34]
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 + 0x50]
shr esi, 0x10
movzx ebx, si
mov dword [esp + 0x18], ecx
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x48]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebx, dword [esp + 0x4c]
mov byte [eax - 2], ch
mov byte [eax - 1], cl
movzx esi, byte [edx + 2]
movzx ecx, byte [esp + 0x14]
shr esi, cl
movzx ecx, byte [edx + 1]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x34]
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 + 0x18]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x48]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebx, dword [esp + 0x4c]
mov byte [eax], ch
mov byte [eax + 1], cl
movzx ecx, byte [esp + 0x14]
movzx esi, byte [edx + 4]
shr esi, cl
movzx ecx, byte [edx + 3]
mov esi, dword [ebx + esi*4]
movzx ecx, word [esi + ecx*2]
mov esi, dword [esp + 0x34]
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 + 0x18]
shr esi, 0x10
movzx ebx, si
movzx esi, bl
shr esi, cl
mov ecx, dword [esp + 0x48]
shr ebx, 8
mov ecx, dword [ecx + esi*4]
movzx ecx, word [ecx + ebx*2]
mov ebp, dword [esp + 0x44]
mov bl, byte [esp + 0x50]
mov byte [eax + 2], ch
mov byte [eax + 3], cl
add edx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x4ada30
jmp case.0x4ace6a.2
mov edx, dword [esp + 0x10]
test edx, edx
jbe case.0x4ace6a.2
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
lea eax, [ecx + 2]
add ecx, 7
mov dword [esp + 0x1c], edx
nop
movzx dx, byte [ecx - 1]
movzx di, byte [ecx]
shl dx, 8
add dx, di
movzx edx, dx
cmp dx, 0xffff
jne 0x4adc6d
mov edx, dword [ecx - 7]
mov dword [eax - 2], edx
mov dx, word [ecx - 3]
mov word [eax + 2], dx
jmp 0x4add59
test dx, dx
jne 0x4adc9d
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 0x4add56
movzx esi, byte [ecx - 5]
movzx edi, byte [ecx - 4]
movzx bx, byte [ecx - 6]
shl si, 8
add si, di
movzx edi, byte [ecx - 2]
movzx esi, si
mov dword [esp + 0x18], esi
movzx esi, byte [ecx - 3]
shl si, 8
add si, di
movzx esi, si
mov dword [esp + 0x14], esi
movzx esi, dx
movzx dx, byte [ecx - 7]
shl dx, 8
add dx, bx
mov ebx, dword [esp + 0x30]
movzx ebp, word [ebx + 2]
movzx edx, dx
imul edx, esi
mov edi, 0xffff
sub edi, esi
imul ebp, edi
lea ebp, [edx + ebp + 0x8000]
mov edx, ebp
shr edx, 0x10
add edx, ebp
movzx ebp, word [esp + 0x18]
shr edx, 0x10
imul ebp, esi
mov byte [eax - 2], dh
mov byte [eax - 1], dl
movzx edx, word [ebx + 4]
imul edx, edi
lea ebp, [edx + ebp + 0x8000]
mov edx, ebp
shr edx, 0x10
add edx, ebp
shr edx, 0x10
mov byte [eax], dh
mov byte [eax + 1], dl
movzx edx, word [ebx + 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 byte [eax + 2], dh
mov esi, ebx
mov byte [eax + 3], dl
add ecx, 8
add eax, 6
sub dword [esp + 0x1c], 1
jne 0x4adc40
pop edi
pop esi
pop ebx
mov edx, dword [esp + 0x18]
mov al, byte [edx + 8]
test al, 4
je 0x4addb1
add byte [edx + 0xa], 0xff
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 0x4adda3
shr eax, 3
imul eax, dword [esp + 4]
mov dword [edx + 4], eax
pop ebp
add esp, 0x10
ret
imul eax, dword [esp + 4]
add eax, 7
shr eax, 3
mov dword [edx + 4], eax
pop ebp
add esp, 0x10
ret