Function at 0x101c6a80
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.0x101c6b25.3
mov ebp, dword [esp + 0x30]
jmp dword [ebp*4 + 0x101c7c60]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
movzx ecx, byte [ecx + 9]
dec ecx
cmp ecx, 0xf
ja case.0x101c6b25.3
movzx ecx, byte [ecx + 0x101c7c94]
jmp dword [ecx*4 + 0x101c7c7c]
mov ecx, 7
mov dword [esp + 0x40], ecx
test ebx, ebx
je case.0x101c6b25.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 0x101c6b7d
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 0x101c6b81
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x101c6b8d
mov ecx, 7
inc eax
jmp 0x101c6b8e
dec ecx
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x101c6b44
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x101c6c66
mov edx, 6
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x101c6b25.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 0x101c6c07
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x101c6c3a
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 0x101c6c4e
mov edx, 6
inc eax
jmp 0x101c6c51
sub edx, 2
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x101c6bc3
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.0x101c6b25.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 0x101c6cb9
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 0x101c6cbd
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x101c6cc9
mov ecx, 6
inc eax
jmp 0x101c6ccc
sub ecx, 2
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x101c6c80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x101c6d98
mov edx, 4
mov dword [esp + 0x38], edx
test ebx, ebx
je case.0x101c6b25.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 0x101c6d45
mov dl, byte [ebp + 0x16c]
mov ecx, dword [esp + 0x38]
shl dl, cl
mov ecx, dword [esp + 0x2c]
and cl, dh
jmp 0x101c6d6c
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 0x101c6d80
mov edx, 4
inc eax
jmp 0x101c6d83
sub edx, 4
mov dword [esp + 0x38], edx
sub ebx, 1
jne 0x101c6d01
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.0x101c6b25.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 0x101c6de9
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 0x101c6ded
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x101c6df9
mov ecx, 4
inc eax
jmp 0x101c6dfc
sub ecx, 4
sub ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x10], ebx
jne 0x101c6db0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test edi, edi
je 0x101c6e4c
test ebx, ebx
je case.0x101c6b25.3
movzx esi, word [ebp + 0x1bc]
mov dl, byte [eax]
movzx ecx, dl
cmp cx, si
jne 0x101c6e36
mov cl, byte [ebp + 0x16c]
jmp 0x101c6e3c
movzx ecx, dl
mov cl, byte [ecx + edi]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x101c6e24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.3
movzx edx, word [ebp + 0x1bc]
nop dword [eax + eax]
movzx ecx, byte [eax]
cmp cx, dx
jne 0x101c6e70
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
inc eax
sub ebx, 1
jne 0x101c6e60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x101c6f0a
test ebx, ebx
je case.0x101c6b25.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 0x101c6ec9
movzx ecx, word [ebp + 0x16c]
jmp 0x101c6eec
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 0x101c6ea0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.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 0x101c6f43
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 0x101c6f20
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.0x101c6b25.3
cmp cl, 8
jne 0x101c7045
test edi, edi
je 0x101c6fec
movzx esi, word [ebp + 0x1b6]
lea ecx, [eax + 1]
nop dword [eax]
mov dl, byte [ecx - 1]
movzx eax, dl
cmp ax, si
jne 0x101c6fbf
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1b8]
jne 0x101c6fbf
movzx eax, byte [ecx + 1]
cmp ax, word [ebp + 0x1ba]
jne 0x101c6fbf
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 0x101c6fd9
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 0x101c6f80
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 0x101c7035
movzx eax, byte [ecx - 1]
cmp ax, word [ebp + 0x1b8]
jne 0x101c7035
movzx eax, byte [ecx]
cmp ax, word [ebp + 0x1ba]
jne 0x101c7035
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 0x101c6ff6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x101c716e
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 0x101c70ea
movzx ecx, byte [esi]
movzx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x101c70ea
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 0x101c70ea
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 0x101c7147
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 0x101c7060
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 0x101c71f5
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1b8]
jne 0x101c71f5
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
imul ecx, esi
add cx, ax
cmp cx, word [ebp + 0x1ba]
jne 0x101c71f5
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 0x101c7180
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 0x101c73af
test esi, esi
je 0x101c734a
test edx, edx
je 0x101c734a
test edi, edi
je 0x101c734a
test ebx, ebx
je case.0x101c6b25.3
mov edx, 0xff
test ecx, ecx
jne 0x101c72d0
movzx esi, byte [eax + 1]
mov dword [esp + 0x40], esi
cmp si, dx
jne 0x101c7259
movzx ecx, byte [eax]
mov cl, byte [ecx + edi]
jmp 0x101c72b6
test si, si
jne 0x101c7266
mov cl, byte [ebp + 0x16c]
jmp 0x101c72b6
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 0x101c7244
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 0x101c72e5
movzx ecx, byte [eax]
mov dl, byte [ecx + edi]
jmp 0x101c7333
test si, si
jne 0x101c72f2
mov dl, byte [ebp + 0x16c]
jmp 0x101c7333
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 0x101c72d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.3
mov cl, byte [eax + 1]
test cl, cl
jne 0x101c7363
mov cl, byte [ebp + 0x16c]
mov byte [eax], cl
jmp 0x101c739f
cmp cl, 0xff
jae 0x101c739f
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 0x101c7352
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [esp + 0x18], 0
je 0x101c7597
cmp dword [esp + 0x28], 0
je 0x101c7597
cmp dword [esp + 0x1c], 0
je 0x101c7597
test ebx, ebx
je case.0x101c6b25.3
lea edi, [eax + 1]
mov eax, 0x100
mov esi, 0xffff
test ecx, ecx
je 0x101c74c4
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 0x101c7433
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 0x101c74a7
mov dword [esp + 0x38], edx
test ax, ax
jne 0x101c744e
movzx eax, word [ebp + 0x16c]
mov ecx, eax
shr ax, 8
movzx eax, ax
jmp 0x101c74a7
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 0x101c73f0
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 0x101c74fe
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 0x101c7571
mov dword [esp + 0x38], edx
test ax, ax
jne 0x101c7510
movzx eax, word [ebp + 0x16c]
jmp 0x101c7571
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 0x101c74c4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.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 0x101c75d2
movzx ecx, word [ebp + 0x16c]
jmp 0x101c760f
cmp ax, dx
jae 0x101c7619
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 0x101c75b0
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 0x101c78c4
mov ecx, esi
test ecx, ecx
je 0x101c77c9
test edx, edx
je 0x101c77c9
test edi, edi
je 0x101c77c9
test ebx, ebx
je case.0x101c6b25.3
lea esi, [eax + 1]
mov al, byte [esi + 2]
cmp al, 0xff
jne 0x101c768c
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 0x101c77ae
test al, al
jne 0x101c76ae
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 0x101c77ae
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 0x101c770a
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 0x101c775c
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 0x101c77ae
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 0x101c7665
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.3
lea ecx, [eax + 1]
mov dword [esp + 0x40], ecx
mov al, byte [ecx + 2]
test al, al
jne 0x101c7801
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 0x101c78ac
cmp al, 0xff
jae 0x101c78ac
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 0x101c77d8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x18]
test edi, edi
je 0x101c7b30
cmp dword [esp + 0x28], 0
je 0x101c7b30
cmp dword [esp + 0x1c], 0
je 0x101c7b30
test ebx, ebx
je case.0x101c6b25.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 0x101c797d
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 0x101c7b08
test cx, cx
jne 0x101c79ba
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 0x101c7b0d
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 0x101c7a2d
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 0x101c7a8f
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 0x101c7af2
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 0x101c7900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
test ebx, ebx
je case.0x101c6b25.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 0x101c7b8d
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 0x101c7c3c
cmp ax, dx
jae 0x101c7c47
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 0x101c7b45
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret