Function at 0x100a6d8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edi, edi
sub esp, 0x74
push ebx
mov ebx, 0x1000000
push esi
mov esi, dword [ebp + 0x14]
push edi
cmp esi, ebx
mov edi, 0xfffffff
jb 0x100a4df
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x100a4df
mov ecx, dword [0x103eeb0]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x1009dfb
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1023dc8]
mov dword [ebp - 0x1c], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x1009dec
lea ecx, [eax - 1]
jmp 0x1009df6
jbe 0x1009f14
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x1009dca
xor eax, eax
test eax, eax
je 0x100a4df
mov esi, dword [eax + 4]
mov ecx, dword [eax]
and ecx, 7
and esi, edi
lea ecx, [ecx + eax + 8]
lea edi, [esi + ecx]
mov eax, dword [0x1004728]
mov dword [ebp - 8], ecx
sub eax, esi
sub dword [ebp - 8], ebx
mov dword [ebp + 0x14], ecx
lea ecx, [eax + 1]
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x14], ecx
je 0x1009e62
mov edx, dword [0x104c148]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x1009e38
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
push esi
push dword [ebp - 8]
add eax, edx
mov dword [ebp - 0x10], eax
mov eax, 0x71927411
test esi, esi
mov eax, dword [edi]
mov dword [ebp - 0x58], eax
mov eax, dword [edi + 4]
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
mov byte [ebp + 0x13], 0
jbe 0x100a371
lea esi, [ebp - 0x58]
mov eax, 0xc98d9717
mov edi, dword [0x1004758]
mov edx, dword [ebp - 0x58]
mov eax, 0xfffffff
mov esi, dword [ebp - 0x54]
and edx, eax
and esi, eax
mov eax, ebx
xor ecx, ecx
add edx, ebx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
sub eax, edi
mov dword [ebp - 0xc], eax
jne 0x1009f2d
cmp esi, ecx
mov dword [ebp - 0xc], ecx
jbe 0x100a116
mov edi, 0x6a74adea
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ecx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0xc], esi
jb 0x1009ed0
jmp 0x100a116
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
and ecx, edi
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + ecx + 0x1000000]
jmp 0x1009dfd
lea eax, [edx + esi]
mov ecx, edx
mov edi, dword [0x100003c]
mov dword [ebp - 0x24], eax
lea edi, [edi + 0x10000a0]
mov eax, dword [edi]
add eax, ebx
sub ecx, ebx
mov edi, dword [edi + 4]
mov ebx, ecx
and ebx, 0xfffff000
mov dword [ebp - 0x14], ebx
mov ebx, ecx
sub ebx, dword [ebp - 0x14]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
add edi, eax
mov dword [ebp - 0x74], esi
mov esi, eax
cmp eax, edi
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edi
je 0x1009f86
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jae 0x1009f86
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x6c]
jne 0x1009f77
and dword [ebp - 0x64], 0
cmp esi, dword [ebp - 0x6c]
je 0x1009fba
mov eax, dword [ebp - 0x14]
cmp dword [esi], eax
jne 0x1009fba
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x1009fba
lea eax, [esi + 8]
movzx edi, word [eax]
and edi, 0xfff
cmp edi, ebx
jae 0x1009fba
inc dword [ebp - 0x64]
inc eax
inc eax
cmp dword [ebp - 0x64], ecx
jne 0x1009fa3
mov edi, 0x6a74adea
cmp esi, dword [ebp - 0x6c]
je 0x100a0cf
mov ecx, dword [ebp - 0x74]
cmp dword [esi], ecx
ja 0x100a0cf
mov eax, dword [esi + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [ebp - 0x64], ebx
jne 0x1009ff9
add esi, eax
cmp esi, dword [ebp - 0x6c]
je 0x100a0cf
cmp dword [esi], ecx
ja 0x100a0cf
and dword [ebp - 0x64], 0
jmp 0x1009fd3
cmp dword [esi], ecx
jne 0x100a013
mov eax, dword [ebp - 0x64]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x70]
jae 0x100a0cf
mov ecx, 0xf000
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
test word [esi + eax*2 + 8], cx
je 0x1009fbf
mov ecx, dword [esi]
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
lea eax, [eax + ecx + 0x1000000]
xor ecx, ecx
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
je 0x100a07f
movzx eax, byte [ecx + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ebx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ebx, 0xa
xor eax, ebx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
inc ecx
cmp ecx, dword [ebp - 0x14]
jb 0x100a045
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx]
sub eax, dword [ebp - 0xc]
xor ecx, ecx
mov dword [ebp - 0x20], eax
movzx eax, byte [ebp + ecx - 0x20]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov edx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror edx, 0xa
xor eax, edx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
inc ecx
cmp ecx, 4
jb 0x100a08c
lea edx, [ebx + 4]
jmp 0x1009fbf
xor esi, esi
mov ebx, dword [ebp - 0x24]
sub ebx, edx
je 0x100a111
movzx eax, byte [esi + edx]
add eax, edi
add dword [ebp - 0x48], eax
add eax, dword [ebp - 0x44]
imul eax, eax, 0x6a74adea
ror eax, 0x19
mov ecx, eax
imul eax, eax, 0x139
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul eax, eax, 0x6a74adea
ror eax, 0x19
add dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
inc esi
cmp esi, ebx
jb 0x100a0d8
mov ebx, 0x1000000
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x48]
mov byte [ebp + eax - 0x38], cl
inc eax
cmp eax, 6
jb 0x100a118
mov eax, 0xa3f17170
mov eax, 0x100
mov ecx, dword [ebp - 0x1c]
or byte [ebp - 0x38], 1
or byte [ebp - 0x36], 1
or byte [ebp - 0x34], 1
or byte [ebp - 0x33], 1
dec ecx
mov dword [ebp - 0x18], ecx
je 0x100a2d9
mov edx, dword [ebp + 0x14]
lea esi, [ecx + edx]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x10]
sub esi, edx
mov dword [ebp - 0x24], esi
test cl, 1
je 0x100a20e
mov esi, dword [ebp - 0xc]
movzx edi, byte [ebp - 0x35]
mov cl, byte [esi]
xor cl, byte [ebp - 0x35]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100a199
mov edx, edi
shr edx, 1
movzx esi, byte [ebp - 0x36]
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100a19f
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx - 1]
mov dword [ebp - 0x14], edx
xor edx, esi
test dl, 1
je 0x100a1e8
cmp byte [ebp - 1], 0
je 0x100a1c8
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a1ce
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x33]
shr ecx, 1
mov esi, dword [ebp - 0x14]
xor esi, edx
xor ecx, 0x80
sar esi, 1
xor ecx, esi
jmp 0x100a2b8
cmp byte [ebp - 1], 0
je 0x100a200
movzx edx, byte [ebp - 0x36]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a206
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100a2b4
movzx edi, byte [ebp - 0x37]
mov ecx, dword [ebp - 0xc]
mov cl, byte [ecx]
xor cl, byte [ebp - 0x37]
and cl, 1
mov byte [ebp - 1], cl
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
je 0x100a23e
movzx esi, byte [ebp - 0x38]
mov edx, edi
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100a244
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, esi
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor edx, esi
test dl, 1
je 0x100a28d
cmp byte [ebp - 1], 0
je 0x100a26c
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a272
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0xc]
movzx ecx, byte [ebp - 0x34]
movzx esi, byte [esi - 1]
shr ecx, 1
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x100a2b8
cmp byte [ebp - 1], 0
je 0x100a2a5
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a2ab
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
mov esi, dword [ebp - 0xc]
xor byte [ebp + 0x13], cl
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x14], ecx
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x18]
dec ecx
dec dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
test ecx, ecx
ja 0x100a163
mov edi, dword [ebp + 0x14]
mov cl, byte [edi]
xor cl, byte [ebp - 0x37]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [edi]
je 0x100a306
movzx edx, byte [ebp - 0x38]
movzx esi, byte [ebp - 0x37]
mov edi, esi
shr edi, 1
shr edx, 1
xor edx, edi
mov edi, ecx
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x100a316
movzx edx, byte [ebp - 0x37]
mov esi, edx
mov dword [ebp - 0x18], edx
mov edx, ecx
xor edx, dword [ebp - 0x18]
shr edx, 1
test dl, 1
je 0x100a343
cmp byte [ebp - 1], 0
je 0x100a333
movzx edi, byte [ebp - 0x38]
shr edi, 1
shr esi, 1
xor ecx, eax
xor edi, esi
sar ecx, 1
xor edi, ecx
jmp 0x100a339
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x34]
xor edx, edi
xor edx, eax
jmp 0x100a361
cmp byte [ebp - 1], 0
je 0x100a35b
movzx edx, byte [ebp - 0x38]
shr edx, 1
shr esi, 1
xor ecx, eax
xor edx, esi
sar ecx, 1
xor edx, ecx
jmp 0x100a361
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
sar edx, 1
xor byte [ebp + 0x13], dl
mov byte [eax], dl
mov al, byte [edi + 8]
xor al, byte [ebp + 0x13]
je 0x100a403
call 0x100e8f8
mov edx, 0xfffff000
mov ebx, eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
mov esi, 0xffff
mov dword [eax + 8], 0x1009c70
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
mov dword [ebp + 0x14], esi
and ebx, edx
and edi, edx
xor eax, eax
mov edx, dword [0x104c148]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100a3ad
xor edx, edx
div esi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ebx
mov dword [ebp + 0x14], 0
inc edx
mov dword [eax], edx
jmp 0x100a3f5
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x100a3ed
mov eax, 0x1009c70
jmp 0x100ac4c
mov eax, dword [0x1004758]
mov edi, dword [ebp + 0x14]
sub edi, dword [ebp - 0x10]
sub ebx, eax
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], ebx
jne 0x100a420
test edi, edi
je 0x100a4cd
mov eax, dword [ebp - 8]
mov ecx, dword [0x1004e80]
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
add eax, esi
xor esi, esi
dec ecx
mov dword [ebp + 0xc], eax
js 0x100a464
lea eax, [esi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1004e84]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x100a458
lea ecx, [eax - 1]
jmp 0x100a45d
jbe 0x100a469
lea esi, [eax + 1]
cmp ecx, esi
jge 0x100a439
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], esi
jmp 0x100a4c2
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0x14], eax
jmp 0x100a4c2
mov eax, dword [ebp + 0x14]
mov eax, dword [eax*4 + 0x1004e84]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0xc]
jae 0x100a4cd
lea esi, [ecx + ebx + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100a4b4
dec ecx
je 0x100a4b0
dec ecx
jne 0x100a4b9
mov edx, dword [ebp + 8]
jmp 0x100a4b9
mov edx, edi
jmp 0x100a4b9
mov edx, dword [ebp + 8]
sub edx, edi
dec eax
dec eax
jne 0x100a4bf
add dword [esi], edx
inc dword [ebp + 0x14]
mov eax, dword [ebp + 0x14]
cmp eax, dword [0x1004e80]
jb 0x100a471
mov eax, dword [0x1004728]
mov eax, 0x873c7602
mov eax, dword [ebp - 0x10]
jmp 0x100ac4c
mov esi, dword [ebp + 0x14]
cmp esi, ebx
jb 0x100abbd
mov eax, dword [0x100003c]
mov eax, dword [eax + 0x1000050]
add eax, ebx
cmp esi, eax
jae 0x100abbd
mov ecx, dword [0x100ebb8]
and dword [ebp - 0x14], 0
sub esi, ebx
dec ecx
js 0x100a53f
mov eax, dword [ebp - 0x14]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x1004738]
mov dword [ebp - 0x28], edx
mov edx, dword [edx + 4]
and edx, edi
cmp esi, edx
jae 0x100a530
lea ecx, [eax - 1]
jmp 0x100a53a
jbe 0x100a651
inc eax
mov dword [ebp - 0x14], eax
cmp ecx, dword [ebp - 0x14]
jge 0x100a50e
xor ecx, ecx
test ecx, ecx
je 0x100abbd
mov eax, dword [ecx]
mov edx, eax
shr eax, 4
mov edi, eax
shr edx, 1
mov eax, dword [0x1004728]
and edx, 7
lea ecx, [edx + ecx + 8]
sub eax, edi
mov dword [ebp - 8], ecx
lea esi, [edi + ecx]
sub dword [ebp - 8], ebx
mov dword [ebp + 0x14], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x14], ecx
je 0x100a5aa
mov edx, dword [0x104c148]
shr dword [ebp - 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x14], 0
jne 0x100a580
xor edx, edx
div ecx
mov eax, dword [ebp + 0x10]
push edi
add eax, edx
push dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, 0xf470198a
mov eax, dword [esi]
test edi, edi
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 4]
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
mov byte [ebp + 0x13], 0
jbe 0x100aa6a
lea esi, [ebp - 0x60]
mov eax, 0x56760ef0
mov edi, dword [ebp - 0x5c]
mov eax, 0xfffffff
mov esi, dword [ebp - 0x60]
mov ecx, dword [0x1004758]
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
and esi, eax
and edi, eax
add esi, ebx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x24], eax
jne 0x100a66a
and dword [ebp - 0x14], 0
test edi, edi
jbe 0x100a83f
mov ecx, 0x54594da6
mov eax, dword [ebp - 0x14]
mov edx, ecx
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
inc dword [ebp - 0x14]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x14], edi
jb 0x100a619
jmp 0x100a83f
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea ecx, [ecx + eax + 0x1000000]
jmp 0x100a541
lea eax, [edi + esi]
mov edx, dword [0x100003c]
mov dword [ebp - 0x1c], eax
lea edx, [edx + 0x10000a0]
mov eax, dword [edx]
add eax, ebx
mov edx, dword [edx + 4]
mov ecx, esi
sub ecx, ebx
mov ebx, ecx
and ebx, 0xfffff000
mov dword [ebp - 0x14], ebx
mov ebx, ecx
sub ebx, dword [ebp - 0x14]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
mov dword [ebp - 0x74], edi
sub ecx, edi
mov edi, eax
mov dword [ebp - 0x70], ecx
add edx, eax
mov dword [ebp - 0x6c], edx
cmp eax, edx
je 0x100a6c3
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jae 0x100a6c3
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
jne 0x100a6b4
and dword [ebp - 0x64], 0
cmp edi, dword [ebp - 0x6c]
mov edx, 0xfff
je 0x100a700
mov eax, dword [ebp - 0x14]
cmp dword [edi], eax
jne 0x100a700
mov eax, dword [edi + 4]
sub eax, 8
shr eax, 1
je 0x100a700
lea ecx, [edi + 8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, word [ecx]
and ecx, edx
cmp ecx, ebx
jae 0x100a700
inc dword [ebp - 0x64]
add dword [ebp - 0x14], 2
cmp dword [ebp - 0x64], eax
jne 0x100a6e8
mov ecx, 0x54594da6
cmp edi, dword [ebp - 0x6c]
je 0x100a804
mov eax, dword [edi]
cmp eax, dword [ebp - 0x74]
ja 0x100a804
mov eax, dword [edi + 4]
lea ebx, [eax - 8]
shr ebx, 1
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jne 0x100a745
add edi, dword [edi + 4]
cmp edi, dword [ebp - 0x6c]
je 0x100a804
mov eax, dword [ebp - 0x74]
cmp dword [edi], eax
ja 0x100a804
and dword [ebp - 0x64], 0
jmp 0x100a719
mov ebx, dword [ebp - 0x74]
cmp dword [edi], ebx
jne 0x100a75c
movzx eax, word [edi + eax*2 + 8]
and eax, edx
cmp eax, dword [ebp - 0x70]
jae 0x100a804
mov eax, dword [ebp - 0x64]
inc dword [ebp - 0x64]
mov ebx, 0xf000
test word [edi + eax*2 + 8], bx
je 0x100a705
movzx eax, word [edi + eax*2 + 8]
and eax, edx
xor ebx, ebx
mov edx, dword [edi]
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x14], eax
sub dword [ebp - 0x14], esi
mov dword [ebp - 0x28], eax
je 0x100a7bb
movzx eax, byte [ebx + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mov edx, ecx
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
mov eax, edx
add dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x100a78b
mov esi, dword [ebp - 0x28]
mov eax, dword [esi]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0x2c]
add eax, ecx
add dword [ebp - 0x50], eax
mov edx, ecx
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], edx
inc ebx
cmp ebx, 4
jb 0x100a7c8
mov edx, 0xfff
add esi, 4
jmp 0x100a705
xor edi, edi
mov ebx, dword [ebp - 0x1c]
sub ebx, esi
je 0x100a83a
mov edx, ecx
movzx eax, byte [edi + esi]
add eax, ecx
add dword [ebp - 0x50], eax
add eax, dword [ebp - 0x4c]
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xa77f
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x50], edx
inc edi
mov dword [ebp - 0x4c], edx
cmp edi, ebx
jb 0x100a80d
mov ebx, 0x1000000
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x50]
mov byte [ebp + eax - 0x40], cl
inc eax
cmp eax, 6
jb 0x100a841
mov eax, 0x3391744b
mov eax, 0x100
mov ecx, dword [ebp - 0x18]
or byte [ebp - 0x40], 1
or byte [ebp - 0x3e], 1
or byte [ebp - 0x3c], 1
or byte [ebp - 0x3b], 1
dec ecx
mov dword [ebp - 0x1c], ecx
je 0x100aa01
mov edx, dword [ebp + 0x14]
lea esi, [ecx + edx]
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 0x10]
sub esi, edx
mov dword [ebp - 0x28], esi
test cl, 1
je 0x100a938
mov cl, byte [ebp - 0x3d]
mov esi, dword [ebp - 0xc]
xor cl, byte [esi]
movzx edi, byte [ebp - 0x3d]
and cl, 1
mov byte [ebp - 1], cl
movzx ecx, byte [esi]
je 0x100a8c2
movzx esi, byte [ebp - 0x3e]
mov edx, edi
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100a8c8
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx - 1]
mov dword [ebp - 0x14], edx
mov edx, esi
xor edx, dword [ebp - 0x14]
test dl, 1
je 0x100a912
cmp byte [ebp - 1], 0
je 0x100a8f4
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a8fa
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x3b]
shr ecx, 1
xor ecx, 0x80
xor edx, dword [ebp - 0x14]
sar edx, 1
xor ecx, edx
jmp 0x100a9e0
cmp byte [ebp - 1], 0
je 0x100a92a
movzx edx, byte [ebp - 0x3e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a930
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x14]
jmp 0x100a9dc
mov cl, byte [ebp - 0x3f]
movzx edi, byte [ebp - 0x3f]
mov edx, dword [ebp - 0xc]
xor cl, byte [edx]
and cl, 1
mov byte [ebp - 1], cl
mov ecx, edx
movzx ecx, byte [ecx]
je 0x100a967
mov edx, edi
movzx esi, byte [ebp - 0x40]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x100a96d
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, esi
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor edx, esi
test dl, 1
je 0x100a9b5
cmp byte [ebp - 1], 0
je 0x100a995
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a99b
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
movzx ecx, byte [ebp - 0x3c]
shr ecx, 1
xor ecx, 0x80
xor edx, esi
jmp 0x100a909
cmp byte [ebp - 1], 0
je 0x100a9cd
movzx edx, byte [ebp - 0x40]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x100a9d3
xor ecx, edi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
mov esi, dword [ebp - 0xc]
xor byte [ebp + 0x13], cl
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x14], ecx
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x1c]
dec ecx
dec dword [ebp - 0xc]
test ecx, ecx
mov dword [ebp - 0x1c], ecx
ja 0x100a88c
mov dl, byte [ebp - 0x3f]
mov ecx, dword [ebp + 0x14]
xor dl, byte [ecx]
movzx ecx, byte [ecx]
movzx esi, byte [ebp - 0x3f]
xor esi, ecx
shr esi, 1
and dl, 1
je 0x100aa25
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100aa27
mov ecx, esi
test cl, 1
je 0x100aa48
test dl, dl
je 0x100aa3c
movzx edx, byte [ebp - 0x40]
xor edx, eax
sar edx, 1
xor edx, esi
jmp 0x100aa3e
mov edx, esi
movzx ecx, byte [ebp - 0x3c]
xor ecx, edx
xor ecx, eax
jmp 0x100aa5a
test dl, dl
je 0x100aa58
movzx ecx, byte [ebp - 0x40]
xor ecx, eax
sar ecx, 1
xor ecx, esi
jmp 0x100aa5a
mov ecx, esi
mov eax, dword [ebp - 0x10]
sar ecx, 1
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
xor byte [ebp + 0x13], cl
mov byte [eax], cl
mov al, byte [esi + 8]
xor al, byte [ebp + 0x13]
je 0x100aaf7
call 0x100e8f8
mov edx, 0xfffff000
mov esi, 0xffff
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], 0x1009c70
mov dword [ebp + 0x14], esi
lea ecx, [eax + 0xc]
and ecx, 0xfffffffc
lea edi, [ecx + 0xfff]
and ebx, edx
and edi, edx
xor eax, eax
mov edx, dword [0x104c148]
shr dword [ebp + 0x14], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x104c148], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp + 0x14], 0
jne 0x100aaa6
xor edx, edx
div esi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x1c], ebx
inc edx
mov dword [ebp + 0x14], 0
mov dword [eax], edx
jmp 0x100aaee
mov eax, dword [ebp + 0x14]
mov dword [ecx], eax
add ecx, 4
cmp ecx, edi
jb 0x100aae6
jmp 0x100a3f9
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x1004758]
sub eax, dword [ebp - 0x10]
mov dword [ebp + 8], eax
sub ebx, ecx
mov dword [ebp + 0x10], ebx
jne 0x100ab15
test eax, eax
je 0x100a4cd
mov ecx, dword [0x1004e80]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x10]
sub ebx, dword [ebp + 0x14]
add edi, eax
mov dword [ebp + 0x14], edi
xor edi, edi
dec ecx
js 0x100ab56
lea eax, [ecx + edi]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1004e84]
and edx, 0xfffffff
cmp dword [ebp - 8], edx
jae 0x100ab4d
lea ecx, [eax - 1]
jmp 0x100ab52
jbe 0x100ab5a
lea edi, [eax + 1]
cmp ecx, edi
jge 0x100ab2e
mov esi, edi
jmp 0x100abb0
mov esi, eax
jmp 0x100abb0
mov eax, dword [esi*4 + 0x1004e84]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp + 0x14]
jae 0x100a4cd
lea edi, [ecx + ebx + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x100aba3
dec ecx
je 0x100ab9e
dec ecx
jne 0x100aba9
mov edx, dword [ebp + 0x10]
jmp 0x100aba9
mov edx, dword [ebp + 8]
jmp 0x100aba9
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp + 8]
dec eax
dec eax
jne 0x100abaf
add dword [edi], edx
inc esi
cmp esi, dword [0x1004e80]
jb 0x100ab5e
jmp 0x100a4cd
mov eax, 0x22053a55
mov edi, dword [ebp + 0x10]
mov esi, 0x1043008
cmp edi, esi
jb 0x100ac05
mov eax, dword [0x102ba14]
mov ecx, dword [0x1004728]
imul eax, ecx
lea eax, [eax + 0x1043008]
cmp edi, eax
jae 0x100ac05
mov ecx, dword [0x1004728]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x1004728]
imul ecx, eax
lea ecx, [ecx + 0x1043008]
jmp 0x100ac07
xor ecx, ecx
test ecx, ecx
je 0x100ac2c
mov ecx, dword [0x1004728]
mov eax, edi
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x102ba14]
mov dword [eax*4 + 0x104d53c], 0xd1a4
jmp 0x100ac49
call dword [0x10010ec]
push 0x8000
mov esi, eax
push 0
push edi
call dword [0x10010c0]
push esi
call dword [0x10010c8]
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
leave
ret 0x10