Function at 0x110d291e
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x18c
mov eax, dword [0x4fa9d4]
xor eax, esp
mov dword [esp + 0x188], eax
push ebx
push ebp
push esi
mov esi, ecx
xor edx, edx
push edi
mov dword [esp + 0x50], esi
mov ebx, dword [esi + 0xbc]
test ebx, ebx
jle 0x110d298e
mov ebp, dword [esi + 0xd84]
lea edi, [esi + 0x34]
lea ecx, [esi + 0x9c]
nop dword [eax]
cmp dword [ecx - 0x10], ebp
jge 0x110d3119
mov eax, dword [ecx]
cmp eax, dword [esi + 0xd88]
jge 0x110d3119
mov eax, dword [edi]
cmp eax, dword [esi + 0x2d0]
jg 0x110d3112
inc edx
add ecx, 4
add edi, 0x14
cmp edx, ebx
jl 0x110d295e
xor ebp, ebp
mov dword [esp + 0x18], ebp
cmp dword [esi + 0x10], ebp
jle 0x110d3541
mov ebx, 0xd0
nop dword [eax]
nop dword [eax + eax]
cmp dword [esi + 0xcc], 0
jle 0x110d2a5a
cmp dword [esi + 0xdb4], 0
jne 0x110d2a5a
nop word [eax + eax]
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xff
je 0x110d29e2
cmp eax, 0xffffffff
jne 0x110d29ce
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xff
je 0x110d29e2
test eax, eax
je 0x110d29ce
mov ecx, dword [esi + 0xdb8]
cmp eax, ecx
jne 0x110d3620
lea eax, [ecx + 1]
mov dword [esi + 0xdc4], 0
cmp eax, 0xd8
cmove eax, ebx
xor ecx, ecx
mov dword [esi + 0xdb8], eax
mov eax, dword [esi + 0xcc]
mov dword [esi + 0xdb4], eax
cmp dword [esi + 0xbc], ecx
jle 0x110d2a50
lea eax, [esi + 0x38]
nop dword [eax]
mov dword [eax], 0
lea eax, [eax + 0x14]
inc ecx
cmp ecx, dword [esi + 0xbc]
jl 0x110d2a3e
mov dword [esi + 0xdbc], 0
xor edi, edi
mov dword [esp + 0x10], edi
cmp dword [esi + 0xbc], edi
jle 0x110d352b
lea ebx, [esi + 0x8c]
lea ecx, [esi + 0x34]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ecx
nop
mov eax, dword [esi + 0x18]
cdq
idiv dword [ecx - 8]
mov ecx, dword [esi + 0x1c]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, ecx
cdq
idiv dword [ebp - 4]
mov ebp, eax
mov eax, dword [esp + 0x44]
cdq
and edx, 7
mov dword [esp + 0x48], ebp
add eax, edx
sar eax, 3
mov dword [esp + 0x30], eax
mov eax, ebp
mov ebp, dword [esp + 0x18]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x24], eax
test ecx, ecx
jle 0x110d3503
mov edx, dword [esp + 0x48]
mov ecx, 2
mov dword [esp + 0x14], ecx
nop dword [eax]
xor ebx, ebx
mov dword [esp + 0x20], ebx
cmp dword [esi + 0x18], ebx
jle 0x110d34ea
mov eax, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x54], eax
nop word [eax + eax]
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x38]
push eax
imul eax, dword [ecx + 0x10], 0x156
add eax, 0x82c
add eax, esi
push eax
imul eax, dword [ecx], 0x156
mov ecx, esi
add eax, 0x2d4
add eax, esi
push eax
call fcn.110d1f9e
test eax, eax
je 0x110d3133
lea eax, [esp + 0x158]
mov ecx, esi
push eax
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
shl eax, 7
add eax, 0xd0
add eax, esi
push eax
call fcn.110d5b4e
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp edx, 1
jne 0x110d313a
cmp ecx, edx
jne 0x110d33fb
mov edi, dword [esi + 0x10]
lea eax, [ebp + 8]
add eax, ebx
cmp eax, edi
jg 0x110d33f7
imul edi, dword [esp + 0x24]
movzx eax, byte [esp + 0x158]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x159]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x15a]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x15b]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x15c]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x15d]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x15e]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x15f]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
dec edi
movzx eax, byte [esp + 0x160]
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x161]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x162]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x163]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x164]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x165]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x166]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x167]
mov byte [ecx + edi], al
mov edi, dword [esi + 0x10]
imul edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x168]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x169]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x16a]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x16b]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x16c]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x16d]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x16e]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x16f]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
inc edi
movzx eax, byte [esp + 0x170]
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x171]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x172]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x173]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x174]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x175]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x176]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x177]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x178]
add edi, 2
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x179]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x17a]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x17b]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x17c]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x17d]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x17e]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x17f]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
add edi, 3
movzx eax, byte [esp + 0x180]
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x181]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x182]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x183]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x184]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x185]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x186]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x187]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x188]
add edi, 4
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x189]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x18a]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x18b]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x18c]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x18d]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x18e]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x18f]
mov byte [ecx + edi], al
mov edi, dword [esp + 0x14]
movzx eax, byte [esp + 0x190]
add edi, 5
imul edi, dword [esi + 0x10]
add edi, ebx
add edi, ebp
imul edi, dword [esi + 0xbc]
add edi, dword [esi + 0xd8c]
add edi, dword [esp + 0x10]
mov byte [edi], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x191]
mov byte [edi + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x192]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x193]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x194]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [esp + 0x195]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax + eax*2]
movzx eax, byte [esp + 0x196]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [esp + 0x197]
mov byte [ecx + edi], al
jmp 0x110d34c5
push 0x4b727c
jmp 0x110d311e
push 0x4b7250
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x30]
call eax
push edx
push eax
push 1
call fcn.1108bbfe
add esp, 0x10
xor eax, eax
jmp 0x110d3741
cmp edx, 2
jne 0x110d33fb
cmp ecx, edx
jne 0x110d33fb
lea eax, [ebp + 0x10]
add eax, ebx
cmp eax, dword [esi + 0x10]
jg 0x110d33fb
xor eax, eax
lea ebp, [esp + 0x159]
mov dword [esp + 0x1c], eax
nop dword [eax + eax]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0xbc]
mov ebx, dword [esp + 0x24]
add ebx, eax
movzx eax, byte [ebp - 1]
imul ebx, edi
imul edi, ecx
add ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x18]
imul ebx, ecx
add ebx, dword [esi + 0xd8c]
add ebx, dword [esp + 0x10]
add edi, ebx
mov byte [ecx + edi], al
mov eax, dword [esi + 0xbc]
mov cl, byte [edi + eax]
mov byte [edi], cl
mov eax, dword [esi + 0xbc]
mov byte [ebx + eax], cl
mov eax, dword [esi + 0xbc]
movzx eax, byte [ebx + eax]
mov byte [ebx], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [ebp]
lea ecx, [edi + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [edi + ecx*2]
movzx eax, byte [ecx + eax]
mov byte [edi + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [edi + edx*2]
lea ecx, [ebx + edx*2]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [ebx + ecx*2]
movzx eax, byte [ecx + eax]
mov byte [ebx + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [ebp + 1]
lea ecx, [edi + edx*4]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [edi + ecx*4]
movzx eax, byte [ecx + eax]
mov byte [edi + ecx*4], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [edi + edx*4]
lea ecx, [ebx + edx*4]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [ebx + ecx*4]
movzx eax, byte [ecx + eax]
mov byte [ebx + ecx*4], al
mov eax, dword [esi + 0xbc]
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [ebp + 2]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xbc]
lea edx, [eax*8]
sub edx, eax
lea ecx, [eax + eax*2]
movzx eax, byte [edx + edi]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
lea edx, [eax*8]
sub edx, eax
lea ecx, [eax + eax*2]
movzx eax, byte [edi + ecx*2]
mov byte [edx + ebx], al
mov eax, dword [esi + 0xbc]
lea edx, [eax*8]
sub edx, eax
lea ecx, [eax + eax*2]
movzx eax, byte [edx + ebx]
mov byte [ebx + ecx*2], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [ebp + 3]
lea ecx, [edi + edx*8]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [edi + ecx*8]
movzx eax, byte [ecx + eax]
mov byte [edi + ecx*8], al
mov edx, dword [esi + 0xbc]
movzx eax, byte [edi + edx*8]
lea ecx, [ebx + edx*8]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xbc]
lea eax, [ebx + ecx*8]
movzx eax, byte [ecx + eax]
mov byte [ebx + ecx*8], al
imul ecx, dword [esi + 0xbc], 0xb
movzx eax, byte [ebp + 4]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xbc]
imul ecx, eax, 0xb
lea edx, [eax + eax*4]
movzx eax, byte [ecx + edi]
mov byte [edi + edx*2], al
mov eax, dword [esi + 0xbc]
imul edx, eax, 0xb
lea ecx, [eax + eax*4]
movzx eax, byte [edi + ecx*2]
mov byte [edx + ebx], al
mov eax, dword [esi + 0xbc]
imul ecx, eax, 0xb
lea edx, [eax + eax*4]
movzx eax, byte [ecx + ebx]
mov byte [ebx + edx*2], al
imul ecx, dword [esi + 0xbc], 0xd
movzx eax, byte [ebp + 5]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xbc]
imul ecx, eax, 0xd
lea edx, [eax + eax*2]
movzx eax, byte [ecx + edi]
mov byte [edi + edx*4], al
mov eax, dword [esi + 0xbc]
imul edx, eax, 0xd
lea ecx, [eax + eax*2]
movzx eax, byte [edi + ecx*4]
mov byte [edx + ebx], al
mov eax, dword [esi + 0xbc]
imul ecx, eax, 0xd
lea edx, [eax + eax*2]
movzx eax, byte [ecx + ebx]
mov byte [ebx + edx*4], al
mov eax, dword [esi + 0xbc]
mov ecx, eax
shl ecx, 4
sub ecx, eax
movzx eax, byte [ebp + 6]
mov byte [ecx + edi], al
mov eax, dword [esi + 0xbc]
mov edx, eax
shl edx, 4
sub edx, eax
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [edx + edi]
mov byte [edi + ecx*2], al
mov eax, dword [esi + 0xbc]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea edx, [eax*8]
sub edx, eax
movzx eax, byte [edi + edx*2]
mov byte [ecx + ebx], al
mov eax, dword [esi + 0xbc]
mov edx, eax
shl edx, 4
sub edx, eax
lea ecx, [eax*8]
sub ecx, eax
movzx eax, byte [edx + ebx]
mov byte [ebx + ecx*2], al
mov eax, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x1c], eax
lea ebp, [ebp + 8]
cmp eax, 0x10
jl 0x110d316e
jmp 0x110d34bd
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 0x10]
imul eax, dword [esp + 0x24]
mov dword [esp + 0x40], 8
add eax, ebx
xor ebx, ebx
add eax, ebp
mov dword [esp + 0x1c], ebx
imul eax, dword [esi + 0xbc]
add eax, dword [esi + 0xd8c]
add eax, edi
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x3c], eax
xor ebp, ebp
mov dword [esp + 0x38], 8
nop word [eax + eax]
xor edi, edi
test ecx, ecx
jle 0x110d349e
xor ebx, ebx
test edx, edx
jle 0x110d3495
mov edx, dword [esp + 0x20]
add edx, ebp
add edx, dword [esp + 0x18]
cmp edx, dword [esi + 0x10]
jge 0x110d348d
lea ecx, [edi + eax]
inc edx
imul ecx, dword [esi + 0x10]
mov eax, dword [esp + 0x1c]
mov al, byte [esp + eax + 0x158]
add ecx, ebx
add ecx, ebp
inc ebx
imul ecx, dword [esi + 0xbc]
mov esi, dword [esp + 0x4c]
mov byte [ecx + esi], al
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x30]
jl 0x110d3454
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
inc edi
cmp edi, ecx
jl 0x110d3444
mov ebx, dword [esp + 0x1c]
inc ebx
add ebp, edx
sub dword [esp + 0x38], 1
mov dword [esp + 0x1c], ebx
jne 0x110d343e
add eax, ecx
sub dword [esp + 0x40], 1
mov dword [esp + 0x3c], eax
jne 0x110d342e
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x20], ebx
cmp ebx, dword [esi + 0x18]
jl 0x110d2afe
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
add eax, edx
add ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
cmp eax, dword [esi + 0x1c]
jl 0x110d2ade
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
inc edi
add ecx, 0x14
mov dword [esp + 0x10], edi
add ebx, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ebx
cmp edi, dword [esi + 0xbc]
jl 0x110d2a7e
mov ebx, 0xd0
add ebp, dword [esi + 0x18]
dec dword [esi + 0xdb4]
mov dword [esp + 0x18], ebp
cmp ebp, dword [esi + 0x10]
jl 0x110d29ae
cmp dword [esi + 0xc0], 0
je 0x110d36f1
mov eax, dword [esi + 0xbc]
cmp eax, 3
jne 0x110d362a
mov eax, dword [esi + 0x1c]
xor ebp, ebp
imul eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xd8c]
test eax, eax
jle 0x110d36f1
nop word [eax + eax]
movzx ecx, byte [ebx + 2]
lea ebx, [ebx + 3]
movzx edi, byte [ebx - 3]
add ecx, 0xffffff80
movzx edx, byte [ebx - 2]
inc ebp
imul eax, ecx, 0x166e9
add edx, 0xffffff80
shl edi, 0x10
imul ecx, ecx, 0xffff492e
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov byte [ebx - 3], al
imul eax, edx, 0x5819
sub ecx, eax
lea eax, [edi + 0x8000]
add eax, ecx
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov byte [ebx - 2], al
imul eax, edx, 0x1c5a2
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
mov byte [ebx - 1], al
mov eax, dword [esi + 0x1c]
imul eax, dword [esi + 0x10]
cmp ebp, eax
jl 0x110d357e
jmp 0x110d36f1
push 0x4b72a4
jmp 0x110d311e
cmp eax, 4
jne 0x110d36f1
mov eax, dword [esi + 0x1c]
xor ebp, ebp
imul eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xd8c]
test eax, eax
jle 0x110d36f1
nop dword [eax]
movzx ecx, byte [ebx + 2]
lea ebx, [ebx + 4]
movzx edi, byte [ebx - 4]
add ecx, 0xffffff80
movzx edx, byte [ebx - 3]
inc ebp
imul eax, ecx, 0x166e9
add edx, 0xffffff80
shl edi, 0x10
imul ecx, ecx, 0xffff492e
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
not al
mov byte [ebx - 4], al
imul eax, edx, 0x5819
sub ecx, eax
lea eax, [edi + 0x8000]
add eax, ecx
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
not al
mov byte [ebx - 3], al
imul eax, edx, 0x1c5a2
add eax, 0x8000
add eax, edi
sar eax, 0x10
add eax, 0x180
and eax, 0x3ff
movzx eax, byte [eax + 0x4fc0a0]
not al
mov byte [ebx - 2], al
mov eax, dword [esi + 0x1c]
imul eax, dword [esi + 0x10]
cmp ebp, eax
jl 0x110d364e
mov ebx, dword [esi + 0xdb0]
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xd8c]
mov dword [esi + 0xd90], edx
lea eax, [edi + ebx]
cmp eax, ecx
jg 0x110d3727
mov eax, dword [esi + 0xbc]
imul eax, edi
imul eax, dword [esi + 0x10]
add eax, edx
mov dword [esi + 0xd94], eax
jmp 0x110d373c
sub ecx, ebx
imul ecx, dword [esi + 0xbc]
imul ecx, dword [esi + 0x10]
add ecx, edx
mov dword [esi + 0xd94], ecx
mov eax, 1
mov ecx, dword [esp + 0x198]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.110e85d7
add esp, 0x18c
ret