Function at 0x1016abc0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x38]
push esi
mov ebx, dword [ebx]
push edi
mov eax, dword [ebp + 0x19c]
mov ecx, dword [ebp + 0x190]
mov edx, dword [ebp + 0x194]
mov esi, dword [ebp + 0x198]
mov edi, dword [ebp + 0x18c]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x1a0]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x184]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x78]
shr ecx, 0xd
movzx eax, byte [eax + 8]
and ecx, 1
mov dword [esp + 0x30], eax
cmp eax, 6
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ebx
ja case.0x1016ac65.3
mov ebp, dword [esp + 0x30]
jmp dword [ebp*4 + 0x1016bda0]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
movzx ecx, byte [ecx + 9]
dec ecx
cmp ecx, 0xf
ja case.0x1016ac65.3
movzx ecx, byte [ecx + 0x1016bdd4]
jmp dword [ecx*4 + 0x1016bdbc]
mov ecx, 7
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 1
movzx ecx, dl
cmp cx, si
jne 0x1016acbd
mov dl, byte [ebp + 0x16c]
mov ecx, 7
sub ecx, dword [esp + 0x40]
mov ebx, 0x7f7f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x1016acc1
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x1016accd
mov ecx, 7
inc eax
jmp 0x1016acce
dec ecx
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x1016ac84
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x1016ada6
mov edx, 6
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov cl, byte [eax]
mov byte [esp + 0x40], cl
mov ecx, 6
sub ecx, edx
mov edx, 0x3f3f
sar edx, cl
movzx ecx, byte [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dh, byte [esp + 0x40]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x1016ad47
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x1016ad7a
mov cl, byte [esp + 0x38]
movzx edx, dh
shr edx, cl
and edx, 3
lea ecx, [edx*4]
or ecx, edx
shl ecx, 2
or ecx, edx
shl ecx, 2
or ecx, edx
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x38]
shr dl, 6
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, byte [esp + 0x40]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x1016ad8e
mov edx, 6
inc eax
jmp 0x1016ad91
sub edx, 2
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x1016ad03
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, 6
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
nop
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 3
movzx ecx, dl
cmp cx, si
jne 0x1016adf9
mov dl, byte [ebp + 0x16c]
mov ecx, 6
sub ecx, dword [esp + 0x40]
mov ebx, 0x3f3f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x1016adfd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x1016ae09
mov ecx, 6
inc eax
jmp 0x1016ae0c
sub ecx, 2
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x1016adc0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x1016aed8
mov edx, 4
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov cl, byte [eax]
mov byte [esp + 0x40], cl
mov ecx, 4
sub ecx, edx
mov edx, 0xf0f
sar edx, cl
movzx ecx, byte [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dh, byte [esp + 0x40]
mov dl, dh
shr dl, cl
and dl, 0xf
movzx ecx, dl
cmp cx, si
jne 0x1016ae85
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x1016aeac
mov cl, byte [esp + 0x38]
movzx edx, dh
shr edx, cl
and edx, 0xf
mov ecx, edx
shl ecx, 4
or ecx, edx
mov dl, byte [ecx + edi]
mov ecx, dword [esp + 0x38]
shr dl, 4
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, byte [esp + 0x40]
or dl, cl
mov byte [eax], dl
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x1016aec0
mov edx, 4
inc eax
jmp 0x1016aec3
sub edx, 4
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x1016ae41
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, 4
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov dh, byte [eax]
mov dl, dh
shr dl, cl
and dl, 0xf
movzx ecx, dl
cmp cx, si
jne 0x1016af29
mov dl, byte [ebp + 0x16c]
mov ecx, 4
sub ecx, dword [esp + 0x40]
mov ebx, 0xf0f
sar ebx, cl
mov ecx, dword [esp + 0x40]
and bl, dh
shl dl, cl
or bl, dl
mov byte [eax], bl
mov ebx, dword [esp + 0x10]
jmp 0x1016af2d
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x1016af39
mov ecx, 4
inc eax
jmp 0x1016af3c
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x1016aef0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x1016af8c
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov dl, byte [eax]
movzx ecx, dl
cmp cx, si
jne 0x1016af76
mov cl, byte [ebp + 0x16c]
jmp 0x1016af7c
movzx ecx, dl
mov cl, byte [ecx + edi]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x1016af64
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
movzx edx, word [ebp + 0x1bc]
nop dword [eax + eax]
movzx ecx, byte [eax]
cmp cx, dx
jne 0x1016afb0
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x1016afa0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x1016b04a
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
nop dword [eax]
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov byte [esp + 0x40], dl
movzx edx, cl
imul edx, edi
mov byte [esp + 0x38], cl
movzx ecx, byte [esp + 0x40]
add dx, cx
cmp dx, si
jne 0x1016b009
movzx ecx, word [ebp + 0x16c]
jmp 0x1016b02c
movzx ecx, byte [esp + 0x14]
movzx esi, byte [esp + 0x40]
movzx edx, byte [esp + 0x38]
shr esi, cl
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + esi*4]
movzx esi, word [ebp + 0x1bc]
movzx ecx, word [ecx + edx*2]
mov edx, ecx
shr cx, 8
movzx ecx, cx
mov byte [eax], cl
mov byte [eax + 1], dl
add eax, 2
sub ebx, 1
jne 0x1016afe0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
movzx esi, word [ebp + 0x1bc]
mov edi, 0x100
nop
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
imul edx, edi
add dx, cx
cmp dx, si
jne 0x1016b083
movzx edx, word [ebp + 0x16c]
mov ecx, edx
mov byte [eax + 1], dl
shr ecx, 8
mov byte [eax], cl
add eax, 2
sub ebx, 1
jne 0x1016b060
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov cl, byte [ecx + 9]
test ebx, ebx
je case.0x1016ac65.3
cmp cl, 8
jne 0x1016b185
test edi, edi
je 0x1016b12c
movzx esi, word [ebp + 0x1b6]
lea ecx, [eax + 1]
nop dword [eax]
mov dl, byte [ecx - 1]
movzx eax, dl
cmp ax, si
jne 0x1016b0ff
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1b8]
jne 0x1016b0ff
movzx eax, byte [ecx + 1]
cmp ax, word [ebp + 0x1ba]
jne 0x1016b0ff
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx], al
mov al, byte [ebp + 0x16a]
jmp 0x1016b119
movzx eax, dl
movzx eax, byte [eax + edi]
mov byte [ecx - 1], al
movzx eax, byte [ecx]
movzx eax, byte [eax + edi]
mov byte [ecx], al
movzx eax, byte [ecx + 1]
mov al, byte [eax + edi]
mov byte [ecx + 1], al
add ecx, 3
sub ebx, 1
jne 0x1016b0c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edx, word [ebp + 0x1b6]
lea ecx, [eax + 2]
movzx eax, byte [ecx - 2]
cmp ax, dx
jne 0x1016b175
movzx eax, byte [ecx - 1]
cmp ax, word [ebp + 0x1b8]
jne 0x1016b175
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1ba]
jne 0x1016b175
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 2], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x16a]
mov byte [ecx], al
add ecx, 3
sub ebx, 1
jne 0x1016b136
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x1016b2ae
lea esi, [eax + 2]
mov edx, 0x100
nop dword [eax]
mov al, byte [esi - 2]
mov cl, byte [esi - 1]
mov byte [esp + 0x40], cl
movzx ecx, al
mov byte [esp + 0x38], al
movzx eax, dx
imul ecx, eax
movzx eax, byte [esp + 0x40]
add cx, ax
movzx eax, word [ebp + 0x1b6]
cmp cx, ax
jne 0x1016b22a
movzx ecx, byte [esi]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x1016b22a
movzx ecx, byte [esi + 2]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 3]
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x1016b22a
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [esi - 1], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [esi - 2], al
mov eax, ecx
shr eax, 8
mov byte [esi], al
movzx eax, word [ebp + 0x16a]
mov byte [esi + 1], cl
jmp 0x1016b287
mov eax, dword [esp + 0x14]
movzx ebx, al
movzx eax, byte [esp + 0x40]
mov cl, bl
shr eax, cl
movzx ecx, byte [esp + 0x38]
movzx edx, byte [esi]
mov eax, dword [edi + eax*4]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
mov byte [esi - 1], cl
shr eax, 8
mov cl, bl
mov byte [esi - 2], al
movzx eax, byte [esi + 1]
shr eax, cl
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + eax*4]
movzx edx, word [eax + edx*2]
mov eax, edx
mov byte [esi + 1], dl
shr eax, 8
mov edx, 0x100
mov byte [esi], al
movzx eax, byte [esi + 3]
shr eax, cl
movzx ecx, byte [esi + 2]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
mov byte [esi + 2], al
mov byte [esi + 3], cl
add esi, 6
sub ebx, 1
mov dword [esp + 0x10], ebx
jne 0x1016b1a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx edi, word [ebp + 0x1b6]
lea edx, [eax + 2]
mov esi, 0x100
nop dword [eax]
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
imul ecx, esi
add cx, ax
cmp cx, di
jne 0x1016b335
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x1016b335
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x1016b335
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [edx - 1], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [edx - 2], al
mov eax, ecx
shr eax, 8
mov byte [edx + 1], cl
movzx ecx, word [ebp + 0x16a]
mov byte [edx], al
mov eax, ecx
shr eax, 8
mov byte [edx + 2], al
mov byte [edx + 3], cl
add edx, 6
sub ebx, 1
jne 0x1016b2c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ebp, dword [esp + 0x38]
cmp byte [ebp + 9], 8
mov ebp, dword [esp + 0x40]
jne 0x1016b4ef
test esi, esi
je 0x1016b48a
test edx, edx
je 0x1016b48a
test edi, edi
je 0x1016b48a
test ebx, ebx
je case.0x1016ac65.3
mov edx, 0xff
test ecx, ecx
jne 0x1016b410
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x1016b399
movzx ecx, byte [eax]
mov cl, byte [ecx + edi]
jmp 0x1016b3f6
test si, si
jne 0x1016b3a6
mov cl, byte [ebp + 0x16c]
jmp 0x1016b3f6
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
movzx edx, si
mov esi, ecx
movzx ecx, word [ebp + 0x176]
imul esi, edx
mov edx, 0xff
sub edx, dword [esp + 0x40]
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
add si, dx
add si, cx
movzx ecx, si
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
movzx ecx, dl
mov edx, dword [esp + 0x2c]
mov cl, byte [ecx + edx]
mov edx, 0xff
mov byte [eax], cl
add eax, 2
sub ebx, 1
jne 0x1016b384
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x1016b425
movzx ecx, byte [eax]
mov dl, byte [ecx + edi]
jmp 0x1016b473
test si, si
jne 0x1016b432
mov dl, byte [ebp + 0x16c]
jmp 0x1016b473
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
movzx edx, si
mov esi, ecx
movzx ecx, word [ebp + 0x176]
imul esi, edx
mov edx, 0xff
sub edx, dword [esp + 0x40]
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
add si, dx
add si, cx
movzx ecx, si
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
mov byte [eax], dl
add eax, 2
mov edx, 0xff
sub ebx, 1
jne 0x1016b410
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
mov cl, byte [eax + 1]
test cl, cl
jne 0x1016b4a3
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
jmp 0x1016b4df
cmp cl, 0xff
jae 0x1016b4df
movzx edi, byte [eax]
mov edx, 0xff
movzx esi, cl
movzx ecx, word [ebp + 0x16c]
sub edx, esi
movzx edx, dx
imul edx, ecx
mov ecx, 0x80
imul edi, esi
add di, dx
add di, cx
movzx ecx, di
mov edx, ecx
shr edx, 8
add edx, ecx
shr edx, 8
mov byte [eax], dl
add eax, 2
sub ebx, 1
jne 0x1016b492
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x1016b6d7
cmp dword [esp + 0x28], 0
je 0x1016b6d7
cmp dword [esp + 0x1c], 0
je 0x1016b6d7
test ebx, ebx
je case.0x1016ac65.3
lea edi, [eax + 1]
mov eax, 0x100
mov esi, 0xffff
test ecx, ecx
je 0x1016b604
nop dword [eax]
movzx ecx, byte [edi + 1]
lea edx, [edi - 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
cmp ax, si
jne 0x1016b573
mov cl, byte [esp + 0x14]
movzx eax, byte [edi]
mov ebp, dword [esp + 0x18]
shr eax, cl
movzx ecx, byte [edx]
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x40]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x1016b5e7
mov dword [esp + 0x38], edx
test ax, ax
jne 0x1016b58e
movzx eax, word [ebp + 0x16c]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x1016b5e7
mov cl, byte [esp + 0x14]
mov esi, eax
movzx eax, byte [edi]
shr eax, cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + eax*4]
movzx edx, word [eax + ecx*2]
mov ecx, 0xffff
movzx eax, word [ebp + 0x176]
sub ecx, esi
imul eax, ecx
imul edx, esi
mov esi, 0xffff
add edx, 0x8000
add eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
shr cx, 8
mov dword [esp + 0x30], eax
movzx eax, cx
mov ecx, dword [esp + 0x30]
mov byte [edx], al
mov eax, 0x100
mov byte [edi], cl
add edi, 4
sub ebx, 1
jne 0x1016b530
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
movzx ecx, byte [edi + 1]
lea edx, [edi - 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
cmp ax, si
jne 0x1016b63e
mov cl, byte [esp + 0x14]
movzx eax, byte [edi]
mov ebp, dword [esp + 0x18]
shr eax, cl
movzx ecx, byte [edx]
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x40]
movzx eax, word [eax + ecx*2]
jmp 0x1016b6b1
mov dword [esp + 0x38], edx
test ax, ax
jne 0x1016b650
movzx eax, word [ebp + 0x16c]
jmp 0x1016b6b1
movzx ecx, byte [esp + 0x14]
mov esi, eax
movzx eax, byte [edi]
shr eax, cl
movzx ecx, byte [edx]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + eax*4]
movzx edx, word [eax + ecx*2]
mov ecx, 0xffff
movzx eax, word [ebp + 0x176]
sub ecx, esi
imul edx, esi
mov esi, 0xffff
imul eax, ecx
movzx ecx, byte [esp + 0x14]
add edx, 0x8000
add eax, edx
mov edx, eax
shr edx, 0x10
add edx, eax
shr edx, 0x10
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx eax, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov ecx, eax
shr ax, 8
movzx eax, ax
mov byte [edx], al
mov eax, 0x100
mov byte [edi], cl
add edi, 4
sub ebx, 1
jne 0x1016b604
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
lea edi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
nop dword [eax]
movzx ecx, byte [edi + 1]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 2]
add cx, ax
movzx eax, cx
test ax, ax
jne 0x1016b712
movzx ecx, word [ebp + 0x16c]
jmp 0x1016b74f
cmp ax, dx
jae 0x1016b759
movzx esi, byte [edi - 1]
mov edx, eax
movzx eax, byte [edi]
mov ecx, 0xffff
shl esi, 8
sub ecx, edx
add esi, eax
movzx eax, word [ebp + 0x16c]
imul eax, ecx
imul esi, edx
mov edx, 0xffff
add eax, 0x8000
add eax, esi
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi], cl
shr eax, 8
mov byte [edi - 1], al
add edi, 4
mov eax, 0x100
sub ebx, 1
jne 0x1016b6f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
cmp byte [ecx + 9], 8
jne 0x1016ba04
mov ecx, esi
test ecx, ecx
je 0x1016b909
test edx, edx
je 0x1016b909
test edi, edi
je 0x1016b909
test ebx, ebx
je case.0x1016ac65.3
lea esi, [eax + 1]
mov al, byte [esi + 2]
cmp al, 0xff
jne 0x1016b7cc
movzx eax, byte [esi - 1]
movzx eax, byte [eax + edi]
mov byte [esi - 1], al
movzx eax, byte [esi]
movzx eax, byte [eax + edi]
mov byte [esi], al
movzx eax, byte [esi + 1]
mov cl, byte [eax + edi]
jmp 0x1016b8ee
test al, al
jne 0x1016b7ee
movzx eax, byte [ebp + 0x166]
mov cl, byte [ebp + 0x16a]
mov byte [esi - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [esi], al
jmp 0x1016b8ee
movzx edx, al
mov eax, 0xff
sub eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
movzx eax, byte [esi - 1]
movzx eax, byte [eax + ecx]
movzx ecx, dx
mov edx, eax
movzx eax, word [ebp + 0x170]
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x1016b84a
movzx eax, cl
mov ecx, dword [esp + 0x2c]
mov cl, byte [eax + ecx]
movzx eax, byte [esi]
mov byte [esi - 1], cl
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0x38]
movzx eax, word [ebp + 0x172]
movzx ecx, cx
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x1016b89c
movzx eax, cl
mov ecx, dword [esp + 0x2c]
mov cl, byte [eax + ecx]
movzx eax, byte [esi + 1]
mov byte [esi], cl
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + ecx]
mov ecx, dword [esp + 0x38]
movzx eax, word [ebp + 0x174]
movzx ecx, cx
imul edx, ecx
mov ecx, dword [esp + 0x40]
movzx ecx, cx
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
cmp dword [esp + 0x24], 0
jne 0x1016b8ee
mov edx, dword [esp + 0x2c]
movzx eax, cl
mov cl, byte [eax + edx]
mov byte [esi + 1], cl
add esi, 4
mov ecx, dword [esp + 0x20]
sub ebx, 1
jne 0x1016b7a5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
lea ecx, [eax + 1]
mov dword [esp + 0x40], ecx
mov al, byte [ecx + 2]
test al, al
jne 0x1016b941
movzx eax, byte [ebp + 0x166]
mov byte [ecx - 1], al
movzx eax, byte [ebp + 0x168]
mov byte [ecx], al
movzx eax, byte [ebp + 0x16a]
mov byte [ecx + 1], al
jmp 0x1016b9ec
cmp al, 0xff
jae 0x1016b9ec
movzx edx, byte [ecx - 1]
mov edi, 0xff
movzx esi, al
movzx eax, word [ebp + 0x166]
sub edi, esi
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
movzx edx, byte [eax]
mov byte [eax - 1], cl
movzx eax, word [ebp + 0x168]
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
movzx edx, byte [eax + 1]
mov byte [eax], cl
movzx eax, word [ebp + 0x16a]
imul edx, esi
movzx ecx, di
imul ecx, eax
mov eax, 0x80
add dx, cx
add dx, ax
movzx eax, dx
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x40]
shr ecx, 8
mov byte [eax + 1], cl
mov ecx, eax
add ecx, 4
mov dword [esp + 0x40], ecx
sub ebx, 1
jne 0x1016b918
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x1016bc70
cmp dword [esp + 0x28], 0
je 0x1016bc70
cmp dword [esp + 0x1c], 0
je 0x1016bc70
test ebx, ebx
je case.0x1016ac65.3
lea esi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
nop dword [eax + eax]
movzx ecx, byte [esi + 5]
movzx eax, ax
imul ecx, eax
movzx eax, byte [esi + 6]
add cx, ax
movzx ecx, cx
cmp cx, dx
jne 0x1016babd
mov eax, dword [esp + 0x14]
movzx ebx, al
movzx eax, byte [esi]
mov cl, bl
shr eax, cl
movzx ecx, byte [esi - 1]
movzx edx, byte [esi + 1]
mov eax, dword [edi + eax*4]
movzx ecx, word [eax + ecx*2]
mov eax, ecx
mov byte [esi], cl
shr eax, 8
mov cl, bl
mov byte [esi - 1], al
movzx eax, byte [esi + 2]
shr eax, cl
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + eax*4]
movzx edx, word [eax + edx*2]
mov eax, edx
mov byte [esi + 2], dl
shr eax, 8
mov byte [esi + 1], al
movzx eax, byte [esi + 4]
shr eax, cl
movzx ecx, byte [esi + 3]
mov eax, dword [edi + eax*4]
movzx eax, word [eax + ecx*2]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x1016bc48
test cx, cx
jne 0x1016bafa
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [esi], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [esi - 1], al
mov eax, ecx
shr eax, 8
mov byte [esi + 1], al
movzx eax, word [ebp + 0x16a]
mov byte [esi + 2], cl
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x1016bc4d
mov eax, dword [esp + 0x14]
mov edx, ecx
mov ebx, dword [esp + 0x1c]
mov edi, 0xffff
movzx eax, al
sub edi, edx
mov dword [esp + 0x40], eax
mov cl, byte [esp + 0x40]
movzx eax, byte [esi]
shr eax, cl
movzx ecx, byte [esi - 1]
mov dword [esp + 0x38], edx
mov eax, dword [ebx + eax*4]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x170]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x1016bb6d
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov byte [esi], cl
mov cl, byte [esp + 0x40]
shr eax, 8
mov byte [esi - 1], al
movzx eax, byte [esi + 2]
shr eax, cl
movzx ecx, byte [esi + 1]
mov eax, dword [ebx + eax*4]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x172]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x1016bbcf
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov byte [esi + 2], cl
mov cl, byte [esp + 0x40]
shr eax, 8
mov byte [esi + 1], al
movzx eax, byte [esi + 4]
shr eax, cl
movzx ecx, byte [esi + 3]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x10]
movzx ecx, word [eax + ecx*2]
movzx eax, word [ebp + 0x174]
imul ecx, edx
imul eax, edi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
cmp dword [esp + 0x24], 0
jne 0x1016bc32
mov edx, ecx
mov cl, byte [esp + 0x14]
movzx eax, dl
shr eax, cl
mov ecx, dword [esp + 0x28]
shr edx, 8
mov eax, dword [ecx + eax*4]
movzx ecx, word [eax + edx*2]
mov edi, dword [esp + 0x18]
movzx eax, cx
shr cx, 8
mov dword [esp + 0x40], eax
movzx eax, cx
mov ecx, dword [esp + 0x40]
mov edx, 0xffff
mov byte [esi + 3], al
mov eax, 0x100
mov byte [esi + 4], cl
add esi, 8
sub ebx, 1
mov dword [esp + 0x10], ebx
jne 0x1016ba40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x1016ac65.3
lea edi, [eax + 1]
mov edx, 0xffff
mov eax, 0x100
movzx ecx, byte [edi + 5]
movzx eax, ax
imul ecx, eax
movzx eax, byte [edi + 6]
add cx, ax
movzx eax, cx
test ax, ax
jne 0x1016bccd
movzx ecx, word [ebp + 0x166]
mov eax, ecx
mov byte [edi], cl
movzx ecx, word [ebp + 0x168]
shr eax, 8
mov byte [edi - 1], al
mov eax, ecx
shr eax, 8
mov byte [edi + 2], cl
movzx ecx, word [ebp + 0x16a]
mov byte [edi + 1], al
jmp 0x1016bd7c
cmp ax, dx
jae 0x1016bd87
movzx ecx, byte [edi - 1]
mov edx, eax
movzx eax, byte [edi]
mov esi, 0xffff
shl ecx, 8
sub esi, edx
add ecx, eax
movzx eax, word [ebp + 0x166]
imul ecx, edx
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi], cl
movzx ecx, byte [edi + 1]
shl ecx, 8
shr eax, 8
mov byte [edi - 1], al
movzx eax, byte [edi + 2]
add ecx, eax
movzx eax, word [ebp + 0x168]
imul ecx, edx
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi + 2], cl
movzx ecx, byte [edi + 3]
shr eax, 8
shl ecx, 8
mov byte [edi + 1], al
movzx eax, byte [edi + 4]
add ecx, eax
movzx eax, word [ebp + 0x16a]
imul ecx, edx
mov edx, 0xffff
imul eax, esi
add ecx, 0x8000
add eax, ecx
mov ecx, eax
shr ecx, 0x10
add ecx, eax
shr ecx, 0x10
mov eax, ecx
mov byte [edi + 4], cl
shr eax, 8
mov byte [edi + 3], al
add edi, 8
mov eax, 0x100
sub ebx, 1
jne 0x1016bc85
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret