Function at 0x1015d880
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
mov eax, dword [0x10411ce0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ecx]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1e8], eax
lea eax, [ebx + 0xe]
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x184], eax
xor eax, eax
mov dword [ebp - 0x1ac], eax
mov word [ebp - 0x1da], ax
mov eax, ecx
imul eax, dword [ebp + 0x1c]
imul ecx, dword [ebp + 0x20]
push esi
mov esi, dword [ebp + 0x2c]
push edi
mov edi, dword [ebp + 0x28]
mov dword [ebp - 0x1a4], eax
movzx eax, byte [ebx]
add ecx, eax
mov dword [ebp - 0x1ec], edx
mov dl, byte [ebp + 0x24]
lea eax, [ebp - 0xd4]
push eax
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp - 0x1d0]
push esi
push edi
mov dword [ebp - 0x1b4], ebx
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1c4], 0
call fcn.1015d770
movzx eax, byte [ebx]
lea esi, [ebx + 0xe]
movzx ecx, byte [ebx + 0x48]
mov edi, 0x40
add ecx, eax
add esp, 0xc
movzx eax, byte [ebx + 1]
mov dword [ebp - 0x25c], ecx
lea eax, [eax + eax*2]
movzx ebx, byte [esi + eax*2 - 3]
movzx eax, byte [esi + eax*2 - 1]
add ebx, eax
mov eax, dword [ebp - 0x1a4]
sub edi, ebx
shl edi, 2
cmp dword [ebp + 0x14], 0
jne 0x1015d9f6
mov edx, dword [ebp + 0x18]
cmp eax, edx
jge 0x1015da23
lea ecx, [ebx*4]
mov ebx, dword [ebp - 0x1e8]
mov dword [ebp - 0x1c8], ecx
lea esi, [ebx + eax*4]
mov eax, dword [ebp - 0x1b0]
sub eax, ebx
mov ebx, edx
sub ebx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1e0], eax
lea esp, [esp]
mov eax, dword [eax + esi]
push edi
add eax, ecx
push 0
push eax
call fcn.102dad40
mov eax, dword [esi]
add eax, dword [ebp - 0x1c8]
push edi
push 0
push eax
call fcn.102dad40
mov ecx, dword [ebp - 0x1c8]
lea esi, [esi + 4]
mov eax, dword [ebp - 0x1e0]
add esp, 0x18
dec ebx
jne 0x1015d9c0
jmp 0x1015da1d
mov esi, eax
cmp eax, dword [ebp + 0x18]
jge 0x1015da1d
shl ebx, 2
mov eax, dword [ebp - 0x1b0]
push edi
push 0
mov eax, dword [eax + esi*4]
add eax, ebx
push eax
call fcn.102dad40
inc esi
add esp, 0xc
cmp esi, dword [ebp + 0x18]
jl 0x1015da00
mov esi, dword [ebp - 0x184]
mov edi, dword [ebp - 0x1b4]
movzx eax, byte [edi + 1]
shl eax, 2
push eax
lea eax, [ebp - 0x1c]
push 0
push eax
call fcn.102dad40
mov ecx, dword [ebp - 0x1ec]
add esp, 0xc
mov ebx, dword [ebp + 0x14]
mov eax, dword [ecx]
mov edx, eax
mov ecx, dword [ecx + 4]
cmp ecx, eax
cmovl edx, ecx
sub ecx, edx
mov dword [ebp - 0x1c8], edx
sub eax, edx
mov dword [ebp - 0x200], ecx
movzx ecx, byte [edi + 2]
mov dword [ebp - 0x1fc], eax
mov eax, 1
test ebx, ebx
jne 0x1015da7d
movzx eax, byte [edi + 3]
jmp 0x1015da8a
sub ecx, 2
cmp ecx, 1
cmovl ecx, eax
movzx eax, byte [esi + 3]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x19c], ecx
cmp ecx, eax
jge 0x1015ee08
mov edi, edi
mov eax, dword [ebp - 0x1d0]
lea esi, [ebp - 0x174]
mov edx, dword [ebp - 0x1b0]
mov dword [ebp - 0x18c], 0
mov eax, dword [eax + ecx*4 + 0x1c]
mov dword [ebp - 0xbc], eax
test ebx, ebx
jne 0x1015dae3
mov eax, dword [ebp - 0x1d0]
lea esi, [ebp - 0x170]
mov eax, dword [eax + ecx*4 + 0x11c]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x1d0]
mov eax, dword [eax + ecx*4 + 0x9c]
mov dword [ebp - 0xb8], eax
test ebx, ebx
jne 0x1015db0c
mov eax, dword [ebp - 0x1d0]
mov eax, dword [eax + ecx*4 + 0x19c]
mov dword [esi], eax
add esi, 4
lea ecx, [ebp - 0xb4]
test ebx, ebx
jne 0x1015db90
movzx eax, byte [edi + 0x48]
movzx ebx, byte [edi]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x184], ebx
lea edx, [eax + ebx]
test edx, edx
jle 0x1015dbea
mov edi, dword [ebp - 0x1b0]
mov eax, ecx
sub edi, eax
mov ebx, ecx
mov eax, dword [ebp - 0x1e8]
sub eax, ebx
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x190], eax
mov eax, ecx
mov ebx, dword [ebp - 0x190]
sub esi, eax
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
mov edi, dword [ebp - 0x19c]
mov eax, dword [eax + edi*4]
mov dword [ecx - 4], eax
mov eax, dword [ebx + ecx - 4]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0x198]
mov dword [esi + ecx - 4], eax
dec edx
jne 0x1015db62
mov ebx, dword [ebp - 0x184]
jmp 0x1015dbea
mov al, byte [edi]
movzx esi, byte [edi + 0x48]
mov edi, dword [ebp - 0x19c]
movzx ebx, al
mov dword [ebp - 0x178], esi
add esi, ebx
sar esi, 1
mov byte [ebp - 0x1bd], al
mov dword [ebp - 0x184], ebx
test esi, esi
jle 0x1015dbdf
lea esp, [esp]
mov eax, dword [edx]
mov eax, dword [eax + edi*4]
mov dword [ecx], eax
mov eax, dword [edx + 4]
add edx, 8
mov eax, dword [eax + edi*4]
mov dword [ecx + 4], eax
add ecx, 8
dec esi
jne 0x1015dbc0
mov al, byte [ebp - 0x1bd]
test al, 1
je 0x1015dbea
mov eax, dword [edx]
mov eax, dword [eax + edi*4]
mov dword [ecx], eax
mov edi, dword [ebp - 0x178]
lea edx, [ebp - 0xbc]
xor eax, eax
add edi, 2
mov dword [ebp - 0x194], edi
mov esi, edi
je 0x1015dc2a
mov edi, eax
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or edi, eax
dec esi
jne 0x1015dc07
mov dword [ebp - 0x188], edi
mov edi, dword [ebp - 0x194]
mov eax, dword [ebp - 0x188]
bsr ecx, eax
mov dword [ebp - 0x1a8], 0
setne al
test al, al
je 0x1015dc47
mov eax, 0x1f
sub eax, ecx
jmp 0x1015dc4c
mov eax, 0x20
xor ecx, ecx
lea esi, [ebp - 0xb4]
dec eax
cmovs eax, ecx
mov ecx, 0x1d
add eax, dword [ebp - 0x200]
cmp eax, 0x1d
cmovg eax, ecx
mov ecx, ebx
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x178]
shl eax, 2
add esi, eax
mov dword [ebp - 0x1a0], eax
xor eax, eax
mov dword [ebp - 0x190], ecx
mov edx, esi
test ecx, ecx
je 0x1015dcbb
mov edi, eax
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or edi, eax
dec ebx
jne 0x1015dc92
mov ebx, dword [ebp - 0x184]
mov dword [ebp - 0x178], edi
mov edi, dword [ebp - 0x194]
mov eax, dword [ebp - 0x178]
bsr ecx, eax
mov dword [ebp - 0x1a8], 0
setne al
test al, al
je 0x1015dcd8
mov edx, 0x1f
sub edx, ecx
jmp 0x1015dcdd
mov edx, 0x20
xor eax, eax
dec edx
cmovs edx, eax
add edx, dword [ebp - 0x1fc]
cmp dword [ebp - 0x198], edx
cmovl edx, dword [ebp - 0x198]
mov dword [ebp - 0x1cc], edx
cmp dword [ebp + 0x14], eax
jne 0x1015de14
lea eax, [ebp - 0x174]
xor ecx, ecx
mov dword [ebp - 0x190], eax
mov eax, edi
mov dword [ebp - 0x198], eax
test eax, eax
je 0x1015dd56
mov edx, dword [ebp - 0x190]
mov ebx, ecx
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or ebx, eax
dec edi
jne 0x1015dd27
mov edi, dword [ebp - 0x194]
mov edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x178], ebx
mov ebx, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x178]
bsr ecx, ecx
mov dword [ebp - 0x1a8], 0
setne al
test al, al
je 0x1015dd73
mov eax, 0x1f
sub eax, ecx
jmp 0x1015dd78
mov eax, 0x20
xor ecx, ecx
dec eax
cmovs eax, ecx
mov ecx, ebx
add eax, dword [ebp - 0x200]
cmp edx, eax
mov dword [ebp - 0x190], ecx
cmovl eax, edx
lea edx, [ebp - 0x16c]
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x198], eax
xor eax, eax
test ecx, ecx
je 0x1015ddd9
mov ebx, eax
mov edi, ecx
lea ecx, [ecx]
mov ecx, dword [edx]
lea edx, [edx + 4]
mov eax, ecx
sar eax, 0x1f
xor eax, ecx
or ebx, eax
dec edi
jne 0x1015ddb0
mov edi, dword [ebp - 0x194]
mov dword [ebp - 0x178], ebx
mov ebx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x178]
bsr ecx, eax
mov dword [ebp - 0x1a8], 0
setne al
test al, al
je 0x1015ddf6
mov edx, 0x1f
sub edx, ecx
jmp 0x1015ddfb
mov edx, 0x20
xor eax, eax
dec edx
cmovs edx, eax
add edx, dword [ebp - 0x1fc]
cmp dword [ebp - 0x198], edx
cmovl edx, dword [ebp - 0x198]
lea eax, [edx - 1]
xor ecx, ecx
test eax, eax
lea edx, [ebp - 0xbc]
cmovs eax, ecx
mov dword [ebp - 0x194], eax
sub eax, dword [ebp - 0x200]
mov dword [ebp - 0x190], eax
je 0x1015dec5
mov ecx, 0x1f
test eax, eax
jle 0x1015de86
cmp eax, ecx
cmovl ecx, eax
mov eax, edi
movd xmm1, ecx
and eax, 3
je 0x1015de5d
shl dword [edx], cl
add edx, 4
dec eax
jne 0x1015de55
mov eax, edi
sar eax, 2
test eax, eax
je 0x1015dec5
jmp 0x1015de70
lea edx, [edx + 0x10]
movdqu xmm0, xmmword [edx - 0x10]
pslld xmm0, xmm1
movdqu xmmword [edx - 0x10], xmm0
dec eax
jne 0x1015de70
jmp 0x1015dec5
neg eax
cmp eax, 0x1f
cmovl ecx, eax
mov eax, edi
movd xmm1, ecx
and eax, 3
je 0x1015dea8
lea esp, [esp]
sar dword [edx], cl
add edx, 4
dec eax
jne 0x1015dea0
mov eax, edi
sar eax, 2
test eax, eax
je 0x1015dec5
lea edx, [edx + 0x10]
movdqu xmm0, xmmword [edx - 0x10]
psrad xmm0, xmm1
movdqu xmmword [edx - 0x10], xmm0
dec eax
jne 0x1015deb1
mov edx, dword [ebp - 0x194]
sub edx, dword [ebp - 0x1fc]
mov dword [ebp - 0x184], edx
je 0x1015df65
mov ecx, 0x1f
test edx, edx
jle 0x1015df26
cmp edx, ecx
mov eax, ebx
cmovl ecx, edx
movd xmm1, ecx
and eax, 3
je 0x1015defe
shl dword [esi], cl
add esi, 4
dec eax
jne 0x1015def6
mov eax, ebx
sar eax, 2
test eax, eax
je 0x1015df65
jmp 0x1015df10
lea esi, [esi + 0x10]
movdqu xmm0, xmmword [esi - 0x10]
pslld xmm0, xmm1
movdqu xmmword [esi - 0x10], xmm0
dec eax
jne 0x1015df10
jmp 0x1015df65
mov eax, edx
neg eax
cmp eax, 0x1f
cmovl ecx, eax
mov eax, ebx
movd xmm1, ecx
and eax, 3
je 0x1015df48
jmp 0x1015df40
sar dword [esi], cl
add esi, 4
dec eax
jne 0x1015df40
mov eax, ebx
sar eax, 2
test eax, eax
je 0x1015df65
lea esi, [esi + 0x10]
movdqu xmm0, xmmword [esi - 0x10]
psrad xmm0, xmm1
movdqu xmmword [esi - 0x10], xmm0
dec eax
jne 0x1015df51
cmp dword [ebp + 0x14], 0
jne 0x1015e0b7
mov esi, dword [ebp - 0x190]
lea eax, [ebp - 0x174]
test esi, esi
je 0x1015e00a
mov ecx, 0x1f
mov edx, edi
jle 0x1015dfc6
cmp esi, ecx
cmovl ecx, esi
movd xmm1, ecx
and edx, 3
je 0x1015dfa8
lea ebx, [ebx]
shl dword [eax], cl
add eax, 4
dec edx
jne 0x1015dfa0
sar edi, 2
test edi, edi
je 0x1015e004
nop
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
pslld xmm0, xmm1
movdqu xmmword [eax - 0x10], xmm0
dec edi
jne 0x1015dfb0
jmp 0x1015e004
neg esi
cmp esi, ecx
cmovl ecx, esi
movd xmm1, ecx
and edx, 3
je 0x1015dfde
sar dword [eax], cl
add eax, 4
dec edx
jne 0x1015dfd6
sar edi, 2
test edi, edi
je 0x1015e004
jmp 0x1015dff0
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
psrad xmm0, xmm1
movdqu xmmword [eax - 0x10], xmm0
dec edi
jne 0x1015dff0
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x1a0]
lea eax, [ebp + eax - 0x16c]
test edx, edx
je 0x1015e094
mov ecx, 0x1f
jle 0x1015e057
cmp edx, ecx
cmovl ecx, edx
mov edx, ebx
movd xmm1, ecx
and edx, 3
je 0x1015e03a
shl dword [eax], cl
add eax, 4
dec edx
jne 0x1015e032
sar ebx, 2
test ebx, ebx
je 0x1015e094
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
pslld xmm0, xmm1
movdqu xmmword [eax - 0x10], xmm0
dec ebx
jne 0x1015e041
jmp 0x1015e094
neg edx
cmp edx, ecx
cmovl ecx, edx
mov edx, ebx
movd xmm1, ecx
and edx, 3
je 0x1015e078
lea esp, [esp]
sar dword [eax], cl
add eax, 4
dec edx
jne 0x1015e070
sar ebx, 2
test ebx, ebx
je 0x1015e094
nop
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
psrad xmm0, xmm1
movdqu xmmword [eax - 0x10], xmm0
dec ebx
jne 0x1015e080
push dword [ebp - 0x25c]
lea eax, [ebp - 0x16c]
push eax
lea edx, [ebp - 0xb4]
lea ecx, [ebp - 0x258]
call fcn.10168390
add esp, 8
jmp 0x1015e0d1
push dword [ebp - 0x25c]
lea edx, [ebp - 0xb4]
lea ecx, [ebp - 0x258]
call fcn.101680d0
add esp, 4
mov edx, dword [ebp - 0x18c]
mov ecx, eax
mov eax, dword [ebp - 0x194]
add eax, dword [ebp - 0x1c8]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x230]
lea eax, [ecx + eax*2]
cmp eax, 0x7e
mov eax, 1
cmovg edx, eax
xor eax, eax
mov dword [ebp - 0x184], eax
mov word [ebp - 0x20a], ax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x18c], edx
test eax, eax
jne 0x1015e127
xor ecx, ecx
mov dword [ebp - 0x1ac], ecx
mov word [ebp - 0x1da], cx
mov ebx, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x240]
mov dword [ebp - 0x1a0], ecx
test ebx, ebx
je 0x1015e3b6
mov eax, ebx
cdq
mov edi, eax
mov eax, dword [ebp - 0x24c]
xor edi, edx
sub edi, edx
cmp dword [ebp + 0x14], 0
jne 0x1015e1ba
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x244]
mov dword [ebp - 0x178], edx
mov esi, dword [ebp - 0x178]
mov dword [ebp - 0x188], ecx
mov eax, dword [ebp - 0x188]
imul dword [ebp - 0x238]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x188]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x254]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x17c]
add eax, ecx
jmp 0x1015e1fc
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x248]
mov esi, dword [ebp - 0x17c]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x254]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
sar eax, 1
sar esi, 1
sub esi, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
jne 0x1015e20f
xor ecx, ecx
jmp 0x1015e228
lea ecx, [ebp - 0x22c]
mov edx, edi
push ecx
mov ecx, eax
call fcn.1014dd60
mov ecx, dword [ebp - 0x22c]
add esp, 4
add ecx, dword [ebp - 0x230]
mov dword [ebp - 0x22c], ecx
test ecx, ecx
jle 0x1015e254
mov edx, SysReAllocString
sar edx, cl
cmp eax, edx
jl 0x1015e250
mov edx, 1
mov dword [ebp - 0x18c], edx
jmp 0x1015e295
shl eax, cl
jmp 0x1015e258
neg ecx
sar eax, cl
mov edx, dword [ebp - 0x18c]
xor ecx, ecx
sar eax, 0x10
test esi, esi
mov dword [ebp - 0x184], eax
sets cl
mov word [ebp - 0x20a], ax
xor eax, eax
test ebx, ebx
sets al
xor ecx, eax
je 0x1015e295
mov eax, dword [ebp - 0x20a]
neg eax
mov dword [ebp - 0x184], eax
mov word [ebp - 0x20a], ax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x1015e3b6
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x238]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x178]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
imul dword [ebp - 0x254]
mov dword [ebp - 0x188], edx
sub esi, dword [ebp - 0x188]
sar esi, 1
sar ecx, 1
add esi, ecx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
jne 0x1015e31f
xor ecx, ecx
jmp 0x1015e338
lea ecx, [ebp - 0x220]
mov edx, edi
push ecx
mov ecx, eax
call fcn.1014dd60
mov ecx, dword [ebp - 0x220]
add esp, 4
add ecx, dword [ebp - 0x230]
mov dword [ebp - 0x220], ecx
test ecx, ecx
jle 0x1015e36f
mov edx, SysReAllocString
sar edx, cl
cmp eax, edx
jl 0x1015e36b
mov eax, dword [ebp + 0x14]
mov edx, 1
xor esi, esi
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x188], esi
jmp 0x1015e3c2
shl eax, cl
jmp 0x1015e373
neg ecx
sar eax, cl
mov edx, dword [ebp - 0x18c]
xor ecx, ecx
sar eax, 0x10
test esi, esi
mov di, ax
sets cl
mov dword [ebp - 0x1ac], edi
xor eax, eax
mov word [ebp - 0x1da], di
test ebx, ebx
sets al
xor ecx, eax
je 0x1015e3b3
mov eax, dword [ebp - 0x1da]
neg eax
mov dword [ebp - 0x1ac], eax
mov word [ebp - 0x1da], ax
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp - 0x188], esi
test eax, eax
jne 0x1015e3cb
xor ecx, ecx
mov word [ebp - 0x1c4], cx
mov ebx, dword [ebp - 0x254]
test ebx, ebx
je 0x1015e6a5
test eax, eax
mov eax, dword [ebp - 0x184]
movsx edi, ax
jne 0x1015e43c
shl edi, 0x10
mov dword [ebp - 0x17c], edi
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x17c]
cwde
shl eax, 0x10
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x238]
mov dword [ebp - 0x178], edx
mov esi, dword [ebp - 0x24c]
sar esi, 3
add esi, dword [ebp - 0x178]
add esi, ecx
jmp 0x1015e48f
mov ecx, dword [ebp - 0x24c]
shl edi, 0x10
mov dword [ebp - 0x17c], edi
test ecx, ecx
js 0x1015e46e
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov esi, ecx
sar esi, 3
add esi, dword [ebp - 0x17c]
jmp 0x1015e48f
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov esi, dword [ebp - 0x17c]
mov eax, ecx
neg eax
sar eax, 3
sub esi, eax
mov eax, esi
cdq
mov ecx, eax
mov eax, ebx
xor ecx, edx
sar eax, 1
sub ecx, edx
mov dword [ebp - 0x190], eax
cmp ecx, eax
jl 0x1015e5b4
mov edx, 1
mov dword [ebp - 0x18c], edx
mov esi, dword [ebp - 0x188]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x1015e57a
mov eax, dword [ebp - 0x1ac]
cwde
shl eax, 0x10
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x244]
mov dword [ebp - 0x17c], edx
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x178], edi
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x238]
mov dword [ebp - 0x178], edx
mov esi, dword [ebp - 0x1a0]
sar esi, 3
sub esi, dword [ebp - 0x178]
add esi, ecx
mov eax, esi
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, dword [ebp - 0x190]
jl 0x1015e62c
mov edx, 1
mov esi, dword [ebp - 0x188]
mov eax, dword [ebp - 0x1c4]
cwde
imul eax, eax
movsx ecx, si
imul ecx, ecx
add ecx, eax
mov eax, 1
cmp ecx, 0x40000000
cmovge edx, eax
mov eax, dword [ebp - 0x1ac]
movsx ecx, ax
mov eax, dword [ebp - 0x184]
cwde
imul eax, eax
imul ecx, ecx
add ecx, eax
mov eax, dword [ebp + 0x14]
cmp ecx, 0x40000000
jge 0x1015e582
test edx, edx
je 0x1015e6b2
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x188], esi
mov word [ebp - 0x184], cx
test eax, eax
jne 0x1015e6ba
mov word [ebp - 0x1c4], ax
mov dword [ebp - 0x1ac], eax
mov word [ebp - 0x1da], ax
jmp 0x1015e815
test ecx, ecx
jne 0x1015e5c2
mov dword [ebp - 0x228], ecx
xor eax, eax
jmp 0x1015e5e0
lea eax, [ebp - 0x228]
push eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
mov edx, eax
call fcn.1014dd60
mov ecx, dword [ebp - 0x228]
add esp, 4
inc ecx
test ecx, ecx
jle 0x1015e5e9
shl eax, cl
jmp 0x1015e5ed
neg ecx
sar eax, cl
mov edx, dword [ebp - 0x18c]
xor ecx, ecx
sar eax, 0x10
test esi, esi
mov dword [ebp - 0x188], eax
setg cl
mov word [ebp - 0x20c], ax
xor eax, eax
test ebx, ebx
sets al
xor ecx, eax
je 0x1015e4b5
mov esi, dword [ebp - 0x20c]
neg esi
mov dword [ebp - 0x188], esi
jmp 0x1015e4bb
test ecx, ecx
jne 0x1015e63a
mov dword [ebp - 0x260], ecx
xor eax, eax
jmp 0x1015e658
lea eax, [ebp - 0x260]
push eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
mov edx, eax
call fcn.1014dd60
mov ecx, dword [ebp - 0x260]
add esp, 4
inc ecx
test ecx, ecx
jle 0x1015e661
shl eax, cl
jmp 0x1015e665
neg ecx
sar eax, cl
mov edx, dword [ebp - 0x18c]
xor ecx, ecx
sar eax, 0x10
test esi, esi
mov dword [ebp - 0x1c4], eax
setg cl
mov word [ebp - 0x1dc], ax
xor eax, eax
test ebx, ebx
sets al
xor ecx, eax
je 0x1015e531
mov eax, dword [ebp - 0x1dc]
neg eax
mov word [ebp - 0x1c4], ax
jmp 0x1015e531
test eax, eax
jne 0x1015e57a
jmp 0x1015e537
test eax, eax
je 0x1015e815
test ebx, ebx
je 0x1015e732
mov esi, dword [ebp - 0x24c]
mov eax, ebx
cdq
mov ecx, eax
mov eax, esi
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jl 0x1015e704
mov dword [ebp - 0x17c], esi
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x254]
mov dword [ebp - 0x17c], edx
xor ebx, ebx
cmp dword [ebp - 0x17c], ebx
setge bl
lea ebx, [ebx*2 + 0x7fffffff]
jmp 0x1015e732
test eax, eax
jne 0x1015e79f
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x268], ecx
neg ecx
sar ebx, cl
xor ecx, ecx
cmp dword [ebp - 0x254], ecx
setl cl
xor eax, eax
test esi, esi
sets al
xor ecx, eax
jne 0x1015e732
neg ebx
mov esi, dword [ebp - 0x19c]
mov edi, dword [ebp - 0x1e4]
cmp esi, 1
jle 0x1015e803
mov dword [ebp - 0x17c], edi
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x1e4]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x17c]
mov ecx, SysReAllocString
mov edx, dword [ebp - 0x1f8]
add eax, eax
sub ecx, eax
mov eax, esi
mov dword [edx + esi*4], 0
and eax, 1
jne 0x1015e7d5
test ebx, ebx
jns 0x1015e7d5
test edi, edi
jns 0x1015e7c9
mov dword [edx + esi*4], SysReAllocStringLen
cmp dword [ebp - 0x1d4], eax
jle 0x1015e7d5
mov dword [edx + esi*4 - 4], ecx
jmp 0x1015e7d5
lea edx, [ebp - 0x268]
push edx
mov edx, ecx
mov ecx, eax
call fcn.1014dd60
mov ecx, dword [ebp - 0x268]
add esp, 4
mov ebx, eax
test ecx, ecx
jle 0x1015e716
shl ebx, cl
jmp 0x1015e71a
cmp dword [ebp - 0x1d4], 0
jle 0x1015e7d5
mov dword [edx + esi*4], ecx
test eax, eax
je 0x1015e803
test ebx, ebx
jle 0x1015e803
test edi, edi
jle 0x1015e7f7
cmp dword [ebp - 0x1d4], 0
mov dword [edx + esi*4], SysReAllocStringLen
jge 0x1015e803
mov dword [edx + esi*4 - 4], ecx
jmp 0x1015e803
cmp dword [ebp - 0x1d4], 0
jge 0x1015e803
mov dword [edx + esi*4], ecx
mov esi, dword [ebp - 0x188]
mov dword [ebp - 0x1d4], edi
mov dword [ebp - 0x1e4], ebx
mov edi, dword [ebp - 0x1b4]
xor ebx, ebx
mov dword [ebp - 0x204], ebx
cmp byte [edi + 1], bl
jbe 0x1015edec
lea ecx, [edi + 0xe]
mov dword [ebp - 0x1a0], ecx
jmp 0x1015e840
movzx edx, byte [ecx + 4]
movzx eax, byte [ecx]
add edx, dword [ebp - 0x19c]
cmp dword [ebp - 0x19c], eax
jl 0x1015edca
movzx eax, byte [ecx + 1]
cmp dword [ebp - 0x19c], eax
jge 0x1015edca
mov ecx, dword [ebp + ebx*4 - 0x1c]
movzx eax, byte [ecx + edi + 4]
cmp edx, eax
jl 0x1015e884
movzx eax, byte [ecx + edi + 5]
inc ecx
cmp edx, eax
jge 0x1015e876
mov dword [ebp + ebx*4 - 0x1c], ecx
mov eax, dword [ebp + ebx*4 - 0x1c]
movzx eax, word [ebp + eax*4 - 0xd2]
movsx ecx, ax
movsx eax, si
imul eax, ecx
add eax, eax
sar eax, 0x10
cmp dword [ebp + 0x14], 0
movzx ebx, ax
jne 0x1015e8bf
mov eax, dword [ebp - 0x1c4]
cwde
imul eax, ecx
add eax, eax
sar eax, 0x10
movzx eax, ax
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x184]
imul ecx, ecx
cwde
add ecx, ecx
sar ecx, 0x10
movzx esi, cx
movsx ecx, si
imul eax, ecx
add eax, eax
sar eax, 0x10
cmp dword [ebp + 0x14], 0
movzx eax, ax
mov dword [ebp - 0x180], eax
jne 0x1015e909
mov eax, dword [ebp - 0x1ac]
cwde
imul eax, ecx
add eax, eax
sar eax, 0x10
movzx eax, ax
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x180]
test si, si
jg 0x1015ea29
cmp dword [ebp + 0x14], 0
mov eax, 0x1f
jne 0x1015e9ba
mov esi, dword [ebp - 0x194]
add esi, 2
cmp esi, eax
cmovg esi, eax
mov eax, dword [ebp - 0x1a4]
cmp eax, dword [ebp + 0x18]
jge 0x1015edbe
mov edi, dword [ebp - 0x1b0]
lea ebx, [edx*4]
lea edx, [ebp - 0x16c]
sub edx, edi
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x190], edx
sub ecx, edi
mov edx, dword [ebp - 0x1e8]
lea eax, [edi + eax*4]
sub edx, edi
mov dword [ebp - 0x1cc], ecx
mov edi, dword [ebp + 0x18]
sub edi, dword [ebp - 0x1a4]
mov dword [ebp - 0x198], edx
mov edx, dword [ecx + eax]
lea eax, [eax + 4]
mov ecx, esi
sar edx, cl
mov ecx, dword [eax - 4]
mov dword [ebx + ecx], edx
mov ecx, dword [ebp - 0x190]
mov edx, dword [ecx + eax - 4]
mov ecx, esi
sar edx, cl
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + eax - 4]
mov dword [ebx + ecx], edx
mov ecx, dword [ebp - 0x1cc]
dec edi
jne 0x1015e981
jmp 0x1015edb8
mov ecx, dword [ebp - 0x194]
add ecx, 2
cmp ecx, 0x1f
cmovg ecx, eax
mov eax, dword [ebp - 0x1a4]
cmp eax, dword [ebp + 0x18]
jge 0x1015edbe
mov edi, dword [ebp + 0x18]
lea eax, [edx*4]
mov edx, dword [ebp - 0x1b0]
lea ebx, [ebp - 0xb4]
mov dword [ebp - 0x190], eax
sub ebx, edx
mov eax, dword [ebp - 0x1a4]
sub edi, eax
mov dword [ebp - 0x198], ebx
lea esi, [edx + eax*4]
mov edx, dword [esi + ebx]
lea esi, [esi + 4]
mov eax, dword [esi - 4]
mov ebx, dword [ebp - 0x190]
sar edx, cl
mov dword [ebx + eax], edx
mov ebx, dword [ebp - 0x198]
dec edi
jne 0x1015ea07
jmp 0x1015edb8
cmp dword [ebp + 0x14], 0
mov ecx, 0x1f
jne 0x1015eccb
mov eax, dword [ebp - 0x194]
add eax, 2
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x1a4]
mov esi, eax
mov dword [ebp - 0x18c], eax
cmp eax, dword [ebp + 0x18]
jge 0x1015edbe
mov eax, dword [ebp - 0x21c]
mov edi, dword [ebp - 0x180]
movsx ecx, ax
movsx eax, bx
mov ebx, dword [ebp - 0x214]
movsx ebx, bx
shl ebx, 0x10
mov dword [ebp - 0x264], ebx
movsx ebx, di
shl ecx, 0x10
shl eax, 0x10
shl ebx, 0x10
shl edx, 2
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x1cc], edx
mov edi, edi
mov ebx, dword [ebp + esi*4 - 0xb8]
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x180]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x17c]
mov edi, dword [ebp + esi*4 - 0x170]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x180], edi
mov dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x180]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
mov esi, dword [ebp + esi*4 - 0xbc]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x180], esi
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x1bc]
imul dword [ebp - 0x180]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp - 0x18c]
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp + ecx*4 - 0x174]
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
imul dword [ebp - 0x180]
mov dword [ebp - 0x1b8], edx
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x1bc]
imul dword [ebp - 0x180]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x190]
mov ebx, dword [ebp - 0x1bc]
mov dword [ebp - 0x180], edi
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
imul dword [ebp - 0x180]
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0x264]
mov edi, dword [ebp - 0x17c]
mov dword [ebp - 0x180], esi
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
imul dword [ebp - 0x180]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x224]
mov esi, dword [ebp - 0x178]
mov dword [ebp - 0x1f0], ecx
mov dword [ebp - 0x180], eax
mov eax, dword [ebp - 0x180]
imul dword [ebp - 0x1f0]
mov dword [ebp - 0x180], edx
mov edx, dword [ebp - 0x1f4]
sub edx, dword [ebp - 0x1b8]
sub edx, dword [ebp - 0x210]
add edx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x194]
sar edx, cl
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp + eax*4 - 0xb4]
sar eax, cl
lea ecx, [eax + edx*2]
mov eax, dword [ebp - 0x18c]
mov edx, dword [ebp - 0x1b0]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x1cc]
mov dword [edx + eax], ecx
mov edx, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x194]
add edx, esi
mov esi, dword [ebp - 0x18c]
add edx, edi
add edx, ebx
sar edx, cl
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp + esi*4 - 0x16c]
sar eax, cl
lea ecx, [eax + edx*2]
mov eax, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1cc]
mov eax, dword [eax + esi*4]
inc esi
mov dword [ebp - 0x18c], esi
mov dword [edx + eax], ecx
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x190]
cmp esi, dword [ebp + 0x18]
jl 0x1015eab0
jmp 0x1015edb8
mov edi, dword [ebp - 0x194]
add edi, 2
cmp edi, 0x1f
cmovg edi, ecx
mov ecx, dword [ebp - 0x1a4]
mov esi, ecx
cmp ecx, dword [ebp + 0x18]
jge 0x1015edb8
cwde
lea ecx, [ebp - 0xbc]
shl eax, 0x10
mov dword [ebp - 0x210], eax
lea eax, [edx*4]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x1b0]
movsx ebx, bx
shl ebx, 0x10
sub eax, ecx
mov dword [ebp - 0x1f4], eax
lea esp, [esp]
mov eax, dword [ebp + esi*4 - 0xb8]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x180], ebx
mov eax, dword [ebp - 0x180]
imul dword [ebp - 0x1a8]
mov dword [ebp - 0x180], edx
mov eax, dword [ebp + esi*4 - 0xbc]
mov ecx, dword [ebp - 0x180]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
imul dword [ebp - 0x1a8]
mov dword [ebp - 0x1b8], edx
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp + esi*4 - 0xb4]
lea edx, [edx + ecx]
mov ecx, dword [ebp - 0x194]
sar edx, cl
mov ecx, edi
sar eax, cl
lea ecx, [eax + edx*2]
mov eax, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f0]
lea eax, [eax + esi*4]
inc esi
mov eax, dword [ebp + eax - 0xbc]
mov dword [edx + eax], ecx
cmp esi, dword [ebp + 0x18]
jl 0x1015ed20
mov edi, dword [ebp - 0x1b4]
mov ebx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x1a0]
movzx eax, byte [edi + 1]
inc ebx
mov esi, dword [ebp - 0x188]
add ecx, 6
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x204], ebx
cmp ebx, eax
jl 0x1015e840
mov ecx, dword [ebp - 0x19c]
mov ebx, dword [ebp + 0x14]
inc ecx
mov dword [ebp - 0x19c], ecx
cmp ecx, dword [ebp - 0x1e0]
jl 0x1015daa0
test ebx, ebx
je 0x1015ee71
movzx ebx, byte [edi + 2]
movzx eax, byte [edi + 3]
cmp ebx, eax
jge 0x1015ee71
xor esi, esi
cmp byte [edi + 1], 0
jbe 0x1015ee68
lea edx, [edi + 0xe]
mov cl, byte [edx + 4]
movzx eax, byte [edx]
add cl, bl
cmp ebx, eax
jl 0x1015ee5c
movzx eax, byte [edx + 1]
cmp ebx, eax
jge 0x1015ee5c
cmp cl, 0x40
jae 0x1015ee5c
cmp cl, byte [edx + 3]
je 0x1015ee5c
mov eax, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x1f8]
movzx ecx, cl
mov eax, dword [eax + ebx*4]
mov dword [edi + ecx*4], eax
mov edi, dword [ebp - 0x1b4]
movzx eax, byte [edi + 1]
inc esi
add edx, 6
cmp esi, eax
jl 0x1015ee23
movzx eax, byte [edi + 3]
inc ebx
cmp ebx, eax
jl 0x1015ee18
mov ecx, dword [ebp + 0x24]
mov eax, dword [ebp - 0x1c8]
test ecx, ecx
jle 0x1015ee8f
mov edi, dword [ebp - 0x1d0]
lea esi, [ebp - 0xd4]
add edi, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x1ec]
add eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.102d6d23
mov esp, ebp
pop ebp
ret