Function at 0x8e3690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xfc
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8e4560
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008e4550
mov edx, dword [0xa7af68]
mov ecx, dword [0xa7af34]
mov edi, 0x996a
sub edi, eax
sub ecx, edi
add ecx, edx
call dword [0xa37360]
call ecx
mov ebx, eax
mov dword [ebp - 0x8c], 0
mov eax, dword [0xa7af54]
mov esi, dword [0xa7af44]
mov dword [ebp - 0x4c], edi
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa37360]
lea eax, [ebp - 0x100]
lea edx, [ebp - 0x8c]
mov ecx, dword [ebp + 8]
push eax
push edx
call esi
mov dword [ebp - 0x100], 0
mov eax, ebx
xor eax, 0xca2fdd5f
mov dword [ebp - 0x5c], eax
mov dword [ebp + eax - 0x100], 0
mov eax, ebx
xor eax, 0xca2fdd53
mov dword [ebp - 0x64], eax
mov dword [ebp + eax - 0x100], 0
mov eax, ebx
xor eax, 0xca2fdd4b
mov ecx, ebx
xor ecx, 0xca2fdd4f
mov edx, ebx
xor edx, 0xca2fdd54
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp + ecx - 0x8c], edx
mov ecx, ebx
xor ecx, 0xca2fdd50
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp + eax - 0x8c], ecx
mov dword [ebp - 0x58], ebx
mov ecx, ebx
xor cl, 0xf4
movzx eax, byte [0xa7ae8c]
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x8e3862
mov eax, dword [ebp - 0x58]
mov ecx, eax
xor cl, 0x7c
mov edx, eax
xor dl, 0x13
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa7ae8c], dl
je 0x8e37d6
cmp al, byte [ebp - 0x20]
jne 0x8e37c0
jmp 0x8e3862
mov ebx, dword [ebp - 0x58]
mov eax, ebx
xor eax, 0x51aa1ac5
mov dword [ebp - 0x34], eax
mov eax, ebx
xor eax, 0xca2fdd56
mov esi, ebx
xor esi, 0x954609dc
mov edi, ebx
xor edi, 0x6ab9f623
mov dword [ebp - 0x50], eax
add edi, eax
mov eax, ebx
xor al, 0xec
mov byte [ebp - 0x74], al
xor ebx, 0xca2fdd57
xor ecx, ecx
nop
nop
mov eax, dword [ebp - 0x34]
add eax, ecx
xor edx, edx
div dword [ebp - 0x50]
mov eax, edi
sub eax, edx
mov edx, eax
xor edx, esi
and eax, esi
movzx eax, byte [edx + eax*2 + 0x9eca90]
mov edx, eax
not dl
and dl, byte [ebp - 0x74]
xor al, byte [ebp - 0x58]
xor al, 0xec
or al, dl
xor byte [ecx + 0xa7ae80], al
mov eax, ecx
xor eax, 1
and ecx, 1
lea ecx, [eax + ecx*2]
cmp ecx, ebx
jl 0x8e3810
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0xa7ae8c], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0xa7af5c]
mov ecx, dword [0xa7af30]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov edi, dword [ebp - 0x38]
push edi
push 0xa7ae80
lea esi, [ebp - 0x8c]
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0x8c], 0
mov dword [ebp - 0x10], 3
push esi
push dword [ebp + 0x14]
call fcn.008d56d0
add esp, 8
nop
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0x8c]
cmp eax, dword [ebp - 0x2c]
jbe 0x8e392f
nop
mov ecx, dword [ebp - 0x8c]
lea esi, [eax + 1]
mov edx, dword [ebp - 0x58]
xor edx, 0xca2fd2a4
cmp esi, edx
ja 0x8e38e1
nop
test byte [0xa8c5cc], 1
je 0x8e3925
mov ebx, dword [ebp - 0x58]
mov esi, ebx
xor esi, 0x35d022a7
mov edx, dword [ecx + esi]
cmp byte [0xa8c5fc], 0
jne 0x8e3917
add ecx, esi
mov esi, edx
neg esi
mov edi, ecx
xor edi, esi
and esi, ecx
lea ecx, [edi + esi*2]
mov esi, ebx
xor esi, 0xca2fdd7b
cmp ecx, esi
jae 0x8e438e
mov ecx, ebx
xor ecx, 0xca2fdd7f
add eax, ecx
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x58]
mov edi, ecx
xor edi, 0xca2fdd43
mov dword [ebp - 0x50], edi
mov edi, ecx
xor edi, 0xca2fdd6f
mov dword [ebp - 0xec], edi
mov edi, ecx
xor edi, 0xca2fdd63
add edi, edx
mov dword [ebp - 0x9c], edi
mov edi, ecx
xor edi, 0xca2fdd13
mov dword [ebp - 0xdc], edi
mov edi, ecx
xor edi, 0xca2fdd17
mov dword [ebp - 0xd4], edi
mov edi, ecx
xor edi, 0xca2fdd47
add edi, edx
mov dword [ebp - 0xa0], edi
mov edi, ecx
xor edi, 0xca2fdd77
mov dword [ebp - 0xe8], edi
mov edi, ecx
xor edi, 0xca2fdd6b
mov dword [ebp - 0xe4], edi
mov edi, ecx
xor edi, 0xca2fdd57
mov dword [ebp - 0xb0], edi
mov edi, ecx
xor edi, 0x63756a9a
mov dword [ebp - 0xa8], edi
mov edi, ecx
xor edi, 0xb5d022a4
mov dword [ebp - 0xd8], edi
mov edi, ecx
xor edi, 0x306ebc87
mov dword [ebp - 0xd0], edi
mov edi, ecx
xor edi, 0xca2fd2a5
mov dword [ebp - 0xc0], edi
mov edi, ecx
xor edi, 0xca2fdd78
mov dword [ebp - 0x98], edi
mov edi, ecx
xor edi, 0x35d022bb
mov ebx, ecx
xor ebx, 0xca2fdd44
mov edx, ecx
xor edx, 0x35d022a7
mov dword [ebp - 0x94], edx
mov edx, ecx
xor edx, 0x1d0a0371
mov dword [ebp - 0x74], edx
mov edx, ecx
xor edx, 0xa2b8dc3
mov dword [ebp - 0xa4], edx
mov edx, ecx
xor edx, 0xca2fd2a4
mov dword [ebp - 0xcc], edx
mov edx, ecx
xor edx, 0xca2fdd7b
mov dword [ebp - 0xbc], edx
mov esi, ecx
xor esi, 0xca2fdd7f
mov edx, ecx
xor edx, 0x35d02280
mov eax, ecx
xor eax, 0x1290f8d
mov dword [ebp - 0xac], eax
mov eax, ecx
xor eax, 0xa1b6835b
mov dword [ebp - 0xe0], eax
xor ecx, 0x151f03ca
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp + 0xc]
add eax, ecx
mov dword [ebp - 0x60], eax
nop
mov dword [ebp - 0xc8], edi
xor ebx, edi
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xb8], esi
xor edx, esi
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x6c], eax
nop word cs:[eax + eax]
nop
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
cmp ecx, dword [ebp - 0x90]
je 0x8e4336
mov eax, dword [ebp - 0xb0]
mov edx, dword [ecx + eax]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ecx + eax]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x70], 0
jmp 0x8e3b34
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x70]
add edx, ecx
neg edx
mov eax, ecx
xor eax, edx
and edx, ecx
lea eax, [eax + edx*2]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov edx, dword [ebp - 0x54]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x70], ecx
cmp edx, dword [ebp - 0xf4]
je 0x8e42e0
mov dword [ebp - 0x54], edx
mov eax, dword [edx]
cmp eax, 1
nop
mov dword [ebp - 0x68], eax
je 0x8e3b80
test eax, eax
jne 0x8e3ca0
nop
mov dword [ebp - 0x24], 0
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x8e3b10
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], eax
jmp 0x8e3b10
nop
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x54]
mov esi, dword [ecx + eax]
mov eax, dword [ebp - 0x64]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x44], eax
cmp esi, eax
je 0x8e3eb0
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x50]
cmp dword [ecx + edx], eax
jbe 0x8e3bb1
mov eax, dword [ebp - 0x60]
mov edi, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x24], edi
lea eax, [edi + 1]
mov dword [ebp - 0x3c], eax
jmp 0x8e3bef
sub esi, dword [ebp - 0x24]
cmp esi, 0xffffffff
jne 0x8e3ca7
nop word cs:[eax + eax]
mov esi, dword [ebp - 0x38]
add esi, dword [ebp - 0x50]
cmp esi, dword [ebp - 0x44]
je 0x8e3ca0
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cmp dword [esi + eax], ecx
jbe 0x8e3c02
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], esi
mov ebx, dword [esi + eax]
mov edi, dword [ebp - 0x40]
sub edi, ebx
jb 0x8e3be0
mov al, 1
mov dword [ebp - 0x28], eax
test ebx, ebx
je 0x8e3ca7
nop
add edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax]
mov eax, edi
mov ecx, dword [ebp - 0x24]
sub eax, ecx
push eax
mov dword [ebp - 0x34], edx
push edx
push ecx
call fcn.00937180
add esp, 0xc
test eax, eax
je 0x8e3be0
mov esi, eax
mov dword [ebp - 0x10], 0xffffffff
nop dword [eax + eax]
mov eax, dword [0xa7af58]
mov ecx, dword [0xa7af48]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
call dword [0xa37360]
push ebx
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x8e3bc5
inc esi
mov eax, edi
sub eax, esi
push eax
push dword [ebp - 0x34]
push esi
call fcn.00937180
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x8e3c50
jmp 0x8e3be0
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x68], 2
jne 0x8e414a
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0xec]
cmp byte [ecx + eax], 1
jne 0x8e3d86
mov eax, dword [ebp - 0x30]
mov esi, dword [ecx + eax]
mov eax, dword [ebp - 0xdc]
mov edi, dword [ecx + eax]
mov eax, dword [ebp - 0xd8]
sub eax, esi
cmp eax, edi
jb 0x8e4374
nop
mov eax, dword [ebp - 0x50]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], eax
mov eax, edi
mov edx, dword [ebp - 0xd0]
xor eax, edx
mov dword [ebp - 0x28], edi
mov ecx, edi
and ecx, edx
lea eax, [eax + ecx*2]
mov ecx, eax
xor ecx, esi
mov dword [ebp - 0x38], esi
and eax, esi
sub ecx, edx
lea edx, [ecx + eax*2]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
cmp edx, dword [ebp - 0x2c]
mov ecx, 0xf
lea esi, [ebp - 0x8c]
mov dword [ebp - 0x34], edx
jbe 0x8e3f10
test edx, edx
js 0x8e3ebc
mov eax, edx
or eax, dword [ebp - 0x2c]
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp eax, dword [ebp - 0xc0]
mov dword [ebp - 0x3c], ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x10], 2
ja 0x8e3ec8
push eax
call fcn.0091d7fd
add esp, 4
mov esi, eax
jmp 0x8e3f03
nop
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x54]
mov esi, dword [ecx + eax]
mov eax, dword [ebp - 0x64]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], eax
cmp esi, eax
je 0x8e3eb0
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x50]
cmp dword [ecx + edx], eax
jbe 0x8e3db7
mov eax, dword [ebp - 0x60]
mov edi, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x24], edi
add eax, edi
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x8e3def
sub esi, dword [ebp - 0x24]
cmp esi, 0xffffffff
jne 0x8e414a
nop dword [eax]
mov esi, dword [ebp - 0x38]
add esi, dword [ebp - 0x50]
cmp esi, dword [ebp - 0x40]
je 0x8e3eb0
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cmp dword [esi + eax], ecx
jbe 0x8e3e02
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], esi
mov ebx, dword [esi + eax]
cmp ebx, dword [ebp - 0x44]
ja 0x8e3de0
mov al, 1
mov dword [ebp - 0x28], eax
test ebx, ebx
je 0x8e414a
nop
mov eax, dword [ebp - 0xa8]
add eax, ebx
mov edi, dword [ebp - 0x44]
sub edi, eax
add edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax]
mov eax, edi
mov ecx, dword [ebp - 0x24]
sub eax, ecx
push eax
mov dword [ebp - 0x34], edx
push edx
push ecx
call fcn.00937180
add esp, 0xc
test eax, eax
je 0x8e3de0
mov esi, eax
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
mov eax, dword [0xa7af58]
mov ecx, dword [0xa7af48]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
call dword [0xa37360]
push ebx
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x8e3dd1
inc esi
mov eax, edi
sub eax, esi
push eax
push dword [ebp - 0x34]
push esi
call fcn.00937180
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x8e3e60
jmp 0x8e3de0
mov dword [ebp - 0x28], 0
jmp 0x8e414a
mov dword [ebp - 0x3c], 0x7fffffff
mov eax, 0x80000000
add eax, dword [ebp - 0x98]
mov dword [ebp - 0x10], 2
push eax
call fcn.0091d7fd
add esp, 4
mov esi, eax
add esi, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xc4]
and ecx, esi
mov edx, dword [ebp - 0xc8]
xor ecx, edx
or esi, edx
xor esi, ecx
mov ecx, dword [ebp - 0x94]
mov dword [esi + ecx], eax
mov dword [ebp - 0x8c], esi
nop
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x3c]
nop
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x20]
cmovbe edi, dword [ebp - 0x9c]
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x40], eax
mov edi, dword [ebp - 0x44]
cmovbe edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x48]
mov dword [ebp + eax - 0x8c], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax - 0x8c], ecx
mov eax, dword [0xa7af5c]
mov ecx, dword [0xa7af30]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov ebx, dword [ebp - 0x38]
push ebx
push edi
push esi
call ecx
add esp, 0xc
add ebx, esi
mov eax, dword [0xa7af5c]
mov ecx, dword [0xa7af30]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
call dword [0xa37360]
push dword [ebp - 0x28]
push dword [ebp - 0x20]
push ebx
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov byte [esi + eax], 0
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + eax]
mov eax, dword [ebp - 0x64]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x44], eax
cmp edx, eax
je 0x8e40e1
lea ecx, [ebp - 0x8c]
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
cmp dword [ebp + esi - 0x8c], eax
jbe 0x8e3fca
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax - 0x8c]
mov dword [ebp - 0x40], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x24], ecx
add eax, ecx
mov dword [ebp - 0x68], eax
jmp 0x8e401f
sub esi, dword [ebp - 0x68]
mov eax, esi
mov ecx, dword [ebp - 0xa4]
xor eax, ecx
and esi, ecx
lea eax, [eax + esi*2]
cmp eax, 0xffffffff
jne 0x8e40e8
nop dword [eax + eax]
mov edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x50]
cmp edx, dword [ebp - 0x44]
je 0x8e40e1
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cmp dword [edx + eax], ecx
jbe 0x8e4032
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], edx
mov ebx, dword [edx + eax]
mov edi, dword [ebp - 0x40]
sub edi, ebx
jb 0x8e4010
mov al, 1
mov dword [ebp - 0x28], eax
test ebx, ebx
je 0x8e40e8
nop
add edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax]
mov eax, edi
mov ecx, dword [ebp - 0x24]
sub eax, ecx
push eax
mov dword [ebp - 0x34], edx
push edx
push ecx
call fcn.00937180
add esp, 0xc
test eax, eax
je 0x8e4010
mov esi, eax
mov ecx, dword [ebp - 0x74]
mov eax, ecx
xor eax, edi
and edi, ecx
lea edi, [eax + edi*2]
mov dword [ebp - 0x10], 0xffffffff
nop word [eax + eax]
mov eax, dword [0xa7af58]
mov ecx, dword [0xa7af48]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
call dword [0xa37360]
push ebx
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x8e3fed
lea eax, [esi + 1]
not esi
mov ecx, edi
xor ecx, esi
and esi, edi
sub ecx, dword [ebp - 0x74]
lea ecx, [ecx + esi*2]
push ecx
push dword [ebp - 0x34]
push eax
call fcn.00937180
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x8e4090
jmp 0x8e4010
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0x8c]
cmp eax, dword [ebp - 0x2c]
jbe 0x8e414a
nop
mov ecx, dword [ebp - 0x8c]
lea esi, [eax + 1]
cmp esi, dword [ebp - 0xcc]
jbe 0x8e4140
mov edi, dword [ebp - 0x94]
mov edx, dword [ecx + edi]
mov esi, edi
xor esi, ecx
and ecx, edi
lea ecx, [esi + ecx*2]
sub ecx, edx
cmp ecx, dword [ebp - 0xbc]
jae 0x8e4381
mov ecx, dword [ebp - 0xb4]
and ecx, eax
mov esi, dword [ebp - 0xb8]
xor ecx, esi
and eax, esi
lea esi, [ecx + eax*2]
mov ecx, edx
push esi
push ecx
call fcn.0091d82d
add esp, 8
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
xor eax, dword [ebp - 0x58]
cmp eax, 0xca2fdd58
jne 0x8e42b0
nop
mov eax, dword [ebp - 0x5c]
mov esi, dword [ecx + eax]
mov eax, dword [ebp - 0x64]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], eax
cmp esi, eax
je 0x8e3b10
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xe4]
cmp dword [ecx + edx], eax
jbe 0x8e419b
mov eax, dword [ebp - 0xa0]
mov edi, dword [eax]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x44], eax
neg eax
mov edx, dword [ebp - 0xac]
mov ecx, edx
xor ecx, eax
and eax, edx
mov edx, dword [ebp - 0xe0]
add ecx, edx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edi
lea eax, [edi + edx]
inc eax
mov dword [ebp - 0x68], eax
jmp 0x8e41ef
sub esi, dword [ebp - 0x40]
cmp esi, 0xffffffff
jne 0x8e42ce
nop
mov esi, dword [ebp - 0x38]
add esi, dword [ebp - 0x50]
cmp esi, dword [ebp - 0x28]
je 0x8e3b10
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cmp dword [esi + eax], ecx
jbe 0x8e4202
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], esi
mov edi, dword [esi + eax]
cmp edi, dword [ebp - 0x44]
ja 0x8e41e0
test edi, edi
je 0x8e42ce
nop
mov eax, dword [ebp - 0x3c]
add eax, edi
mov ebx, dword [ebp - 0xac]
sub ebx, eax
add ebx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x20]
movsx edx, byte [eax]
mov eax, ebx
mov ecx, dword [ebp - 0x40]
sub eax, ecx
push eax
mov dword [ebp - 0x34], edx
push edx
push ecx
call fcn.00937180
add esp, 0xc
test eax, eax
je 0x8e41e0
mov esi, eax
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
mov eax, dword [0xa7af58]
mov ecx, dword [0xa7af48]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
call dword [0xa37360]
push edi
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x8e41d2
inc esi
mov eax, ebx
sub eax, esi
push eax
push dword [ebp - 0x34]
push esi
call fcn.00937180
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x8e4260
jmp 0x8e41e0
mov dword [ebp - 0x24], 0
cmp byte [ebp - 0x28], 0
je 0x8e42c9
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], eax
jmp 0x8e3b10
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], eax
jmp 0x8e3b10
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x70]
mov dword [ebp + eax - 0x8c], ecx
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.008d96c0
nop
push dword [ebp - 0x70]
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x6c]
push dword [ecx + eax]
push dword [ebp + 0x14]
call fcn.008d5b90
add esp, 0xc
jmp 0x8e3ad0
mov eax, dword [0xa7af60]
mov esi, dword [0xa7af40]
sub esi, dword [ebp - 0x4c]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xa37360]
lea ecx, [ebp - 0x100]
call esi
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0xfc
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [ebp - 0x10], 2
call fcn.0066e300
nop
mov dword [ebp - 0x10], 1
call fcn.00900ce1
nop
mov dword [ebp - 0x10], 0
call fcn.00900ce1
nop dword [eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.009350a0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
nop
mov eax, dword [0xa7af64]
mov esi, dword [0xa7af38]
sub esi, dword [ebp - 0x4c]
add esi, eax
mov ecx, esi
call dword [0xa37360]
lea ecx, [ebp - 0x8c]
call esi
add esp, 0xc
pop ebp
ret