Function at 0x861d50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x21c
mov edi, ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x862d10
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.00862d00
mov edx, dword [0xa6b1b8]
mov ecx, dword [0xa6b1a0]
mov esi, 0xffffe73e
sub esi, eax
mov dword [ebp - 0x4c], esi
sub ecx, esi
add ecx, edx
call dword [0xa37360]
call ecx
mov ecx, eax
xor ecx, 0xcf12ed88
mov dword [ebp - 0x30], ecx
mov esi, dword [edi + ecx]
mov ecx, eax
xor ecx, 0xcf12ed84
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x28], edi
cmp esi, dword [edi + ecx]
je 0x861e5d
mov edx, esi
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x5c], ecx
mov edi, eax
xor edi, 0xcf12ef04
mov ecx, eax
xor ecx, 0xcf12ed94
mov dword [ebp - 0x34], ecx
mov ecx, eax
xor ecx, 0xcf12ed83
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x24], eax
xor eax, 0xcf12ed90
mov dword [ebp - 0x8c], eax
mov ebx, dword [0xa8d668]
nop dword [eax]
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
cmp dword [edx + ecx], eax
mov dword [ebp - 0x20], edx
jbe 0x861e30
mov eax, dword [ebp - 0x30]
mov esi, dword [edx + eax]
jmp 0x861e36
mov eax, dword [ebp - 0x30]
lea esi, [edx + eax]
mov ecx, dword [ebx + edi]
call dword [0xa37360]
push esi
push 0
call ecx
test eax, eax
jne 0x861e64
nop
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x28]
cmp edx, dword [ecx + eax]
jne 0x861e10
xor eax, eax
jmp 0x86264e
mov esi, eax
cmp dword [0xa8d65c], 0
jne 0x861eb3
nop
mov eax, dword [ebp - 0x24]
xor eax, 0xcf12edac
push eax
call fcn.0091d7fd
add esp, 4
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x8c]
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0x954b60
mov dword [eax], 0
mov ecx, dword [ebp - 0x34]
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x48]
mov byte [eax + ecx], 0
mov dword [0xa8d65c], eax
nop
mov eax, dword [0xa8d65c]
mov edi, dword [ebp - 0x24]
mov ecx, edi
xor ecx, 0xcf12ed82
mov dword [eax], ecx
mov eax, edi
xor eax, 0xcf12ed98
mov dword [ebp - 0x50], eax
mov dword [ebp + eax - 0xb8], 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx - 0xb8], eax
mov eax, dword [ebp - 0x30]
mov byte [ebp + eax - 0xb8], 0
mov dword [ebp - 0xb8], 0x954b60
lea eax, [ebp - 0x225]
push 0x105
push 0
push eax
call fcn.009350b0
add esp, 0xc
mov dword [ebp - 0x9c], 0
mov eax, edi
xor eax, 0xcf12ec88
mov dword [ebp - 0x90], eax
mov ecx, dword [0xa8d668]
mov eax, edi
xor eax, 0xcf12ef18
mov dword [ebp - 0x28], ecx
mov ecx, dword [ecx + eax]
call dword [0xa37360]
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x9c]
push eax
push esi
call ecx
nop
mov edi, dword [ebp - 0x24]
mov eax, edi
xor eax, 0xcf12efb4
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + eax]
mov esi, dword [ebp - 0x9c]
xor edi, 0xcf0d1273
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov dword [ebp - 0x10], 3
push esi
push 0
push edi
call ecx
mov esi, eax
mov eax, dword [ebp - 0x24]
xor eax, 0xcf12efec
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x225]
push eax
push 0
push esi
mov dword [ebp - 0x38], esi
call ecx
mov ebx, dword [ebp - 0x38]
nop
mov edi, dword [ebp - 0x24]
mov eax, edi
xor eax, 0xcf12ef98
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx + eax]
mov eax, dword [0xa6b1d4]
xor eax, edi
cmp eax, 0x68e0368d
mov eax, dword [0x9e9ea0]
jne 0x862008
mov edx, 0x9e9ea0
mov ecx, 0x9e9ea0
shl eax, cl
xor ecx, ecx
test dl, 0x20
cmove ecx, eax
lea eax, [ecx + 0x9e9ea0]
jmp 0x862026
mov ecx, edi
xor ecx, 0xebb22913
mov edx, edi
shl edx, 0x1c
xor edx, edi
xor edx, 0xd44dd6ec
add edx, ecx
add eax, edx
add eax, 0x9e9ea1
mov dword [ebp - 0x98], eax
nop
mov eax, dword [0xa6b1d8]
xor eax, edi
cmp eax, 0x876eae32
mov eax, dword [0x9e9ea4]
mov dword [ebp - 0x88], eax
mov eax, dword [0x9e9e98]
mov dword [ebp - 0x2c], eax
jne 0x862062
nop
mov dword [0xa6b1e0], 0x9b2aa962
lea eax, [ebp - 0x124]
mov dword [ebp - 0x5c], eax
nop
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xa37360]
mov dword [ebp - 0x10], 3
push ebx
call esi
nop
mov ecx, dword [ebp - 0x90]
xor eax, eax
sub ecx, 0x64
cmovb ecx, eax
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0xb8]
push dword [ebp - 0x20]
call fcn.00799850
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx - 0x120], eax
mov ecx, dword [ebp - 0x24]
mov edx, ecx
xor edx, 0xcf12ed8f
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x7c], edx
mov dword [ebp + eax - 0x120], edx
movzx eax, byte [0xa6b0c4]
xor cl, 0xe9
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x862149
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0xc8
mov edx, eax
xor dl, 0xc2
mov eax, ecx
lock cmpxchg byte [0xa6b0c4], dl
je 0x8620f3
cmp al, byte [ebp - 0x20]
jne 0x8620e0
jmp 0x862149
nop
mov esi, dword [ebp - 0x24]
xor esi, 0xe5612474
mov ecx, dword [ebp - 0x30]
cmp ecx, 2
mov edi, 1
cmovge edi, ecx
xor ebx, ebx
nop dword [eax]
lea eax, [esi + ebx]
xor edx, edx
div ecx
not edx
movzx eax, byte [ebx + 0xa6b0c0]
xor al, byte [ecx + edx + 0x9e9eb0]
xor al, byte [ebp - 0x24]
xor al, 0xd9
mov byte [ebx + 0xa6b0c0], al
inc ebx
cmp edi, ebx
jne 0x862110
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0xa6b0c4], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [ebp - 0x30]
lea ebx, [eax + ebp]
add ebx, 0xffffff48
mov eax, dword [0xa6b1c0]
mov ecx, dword [0xa6b194]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov edi, dword [ebp - 0x7c]
push edi
push 0xa6b0c0
push dword [ebp - 0x5c]
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x24]
xor eax, 0xcf12ed8b
mov byte [ebp + eax - 0x120], 0
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp + eax - 0xb8]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax - 0xb8]
mov ecx, eax
sub ecx, esi
cmp ecx, edi
mov ecx, edi
mov dword [ebp - 0x120], 0x954b60
nop
mov dword [ebp - 0x58], ebx
jae 0x8621f1
nop
mov dword [ebp - 0x10], 4
sub esp, 0x10
movzx eax, byte [ebp - 0x104]
mov byte [esp + 4], al
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x5c]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov ecx, ebx
call fcn.00671270
nop
mov edi, dword [ebp - 0x3c]
jmp 0x86224a
mov edi, ecx
mov ecx, esi
xor ecx, edi
mov edx, esi
and edx, edi
lea edx, [ecx + edx*2]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x50]
mov dword [ebp + ecx - 0xb8], edx
mov ecx, dword [ebx]
cmp byte [0xa8c600], 0
cmovne ebx, ecx
mov edi, dword [ebp - 0x3c]
cmp eax, edi
cmova ebx, ecx
mov eax, dword [0xa6b1bc]
mov ecx, dword [0xa6b190]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
add esi, ebx
call dword [0xa37360]
push dword [ebp - 0x7c]
push dword [ebp - 0x5c]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov byte [ebx + eax], 0
nop
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x28]
sub eax, ecx
mov dword [ebp - 0xd4], eax
lea eax, [ecx + ebp]
add eax, 0xfffffddb
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp + eax - 0x104], 0
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax - 0x104], edi
mov eax, dword [ebp - 0x30]
mov byte [ebp + eax - 0x104], 0
mov dword [ebp - 0x104], 0x954b60
mov ecx, dword [0xa6b1c4]
lea eax, [ecx + 1]
mov dword [0xa6b1c4], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0xcc], ecx
test eax, ecx
nop
mov dword [ebp - 0x38], 0
je 0x862664
nop
mov eax, dword [ebp - 0x30]
add eax, ebp
add eax, 0xfffffefc
mov dword [ebp - 0x20], eax
mov eax, dword [0xa6b1e0]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 6
lea ecx, [ebp - 0x104]
push dword [ebp - 0xd4]
push dword [ebp - 0xd0]
call fcn.00799fb0
nop
mov ecx, dword [ebp - 0x2c]
xor ecx, dword [ebp - 0x24]
xor eax, eax
cmp ecx, 0xa8f00260
sete al
lea eax, [eax + eax*8 + 0xf]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp + ecx - 0x104]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x34]
cmp dword [ebp + ecx - 0x104], eax
mov dword [0xa6b1c8], 0x842c2536
jbe 0x86233d
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp + esi - 0xb8]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax - 0xb8]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x862387
nop
mov dword [ebp - 0x10], 5
sub esp, 0x10
movzx eax, byte [ebp - 0x94]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, dword [ebp - 0x58]
call fcn.00671270
jmp 0x8623f9
nop
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, 0xb62a3420
xor edx, 0x9e6fb26a
add edx, ecx
lea ecx, [edx + ebx]
mov dword [ebp - 0x44], eax
mov eax, edi
mov edi, ecx
xor edi, eax
sub edi, edx
mov dword [ebp - 0x40], eax
and ecx, eax
lea eax, [edi + ecx*2]
mov dword [ebp + esi - 0xb8], eax
mov esi, eax
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x3c]
jbe 0x8623ca
mov eax, dword [ebp - 0x58]
mov edi, dword [eax]
add ebx, edi
mov eax, dword [0xa6b1bc]
mov ecx, dword [0xa6b190]
sub ecx, dword [ebp - 0x4c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
push dword [ebp - 0x40]
push dword [ebp - 0x2c]
push ebx
call ecx
add esp, 0xc
mov byte [edi + esi], 0
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0x104]
cmp ecx, dword [ebp - 0x3c]
jbe 0x862462
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xcf12e273
cmp edx, esi
jbe 0x862457
mov edx, edi
xor edx, 0x30ed1270
lea esi, [eax + edx]
mov eax, dword [eax + edx]
mov dword [0xa6b1d8], 0xcf12ed8c
sub esi, eax
mov edx, edi
xor edx, 0xcf12edac
cmp esi, edx
jae 0x862bae
mov edx, edi
xor edx, 0xcf12eda8
add ecx, edx
mov edx, ecx
nop
push edx
push eax
call fcn.0091d82d
add esp, 8
nop
mov edi, dword [ebp - 0x78]
and edi, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*8]
xor edx, 0x47965450
mov esi, ecx
xor esi, 0xf677a2c4
lea eax, [ecx*4]
xor eax, 0xfcb571ff
xor ecx, 0x9885d3b
add ecx, esi
adc eax, edx
sub ecx, dword [ebp - 0x28]
sbb eax, dword [ebp - 0x38]
add ecx, dword [0x9e9ea8]
adc eax, dword [0x9e9eac]
add ecx, 1
adc eax, 0
xor edx, edx
mov esi, edi
mov dword [ebp - 0x78], edi
test edi, edi
mov edi, ecx
cmove edi, esi
mov ebx, eax
cmove ebx, esi
setne dl
neg edx
mov esi, ecx
or esi, edx
xor esi, edi
mov edi, eax
or edi, edx
xor edi, ebx
xor eax, edx
xor edx, ecx
xor ecx, ecx
cmp dword [ebp - 0x78], 1
not eax
sbb ecx, ecx
or eax, ecx
and eax, edi
not edx
or ecx, edx
and ecx, esi
or ecx, eax
setne al
or al, byte [0xa8c600]
and al, 1
mov byte [0xa8c600], al
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0x120]
cmp ecx, dword [ebp - 0x3c]
jbe 0x86255e
nop
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xcf12e273
cmp edx, esi
jbe 0x862553
mov edx, edi
xor edx, 0x30ed1270
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0xcf12edac
cmp esi, edx
jae 0x862bbb
mov edx, edi
xor edx, 0xcf12eda8
add ecx, edx
mov edx, ecx
nop
push edx
push eax
call fcn.0091d82d
add esp, 8
nop
cmp dword [0xa8d65c], 0
mov dword [ebp - 0x10], 3
jne 0x8625b4
nop
mov eax, dword [ebp - 0x24]
xor eax, 0xcf12edac
push eax
call fcn.0091d7fd
add esp, 4
nop
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x8c]
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0x954b60
mov dword [eax], 0
mov ecx, dword [ebp - 0x34]
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x48]
mov byte [eax + ecx], 0
mov dword [0xa8d65c], eax
nop
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
cmp dword [ebp + edx - 0xb8], ecx
jbe 0x8625d1
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0xb8]
mov ecx, dword [ebp - 0x30]
add ecx, dword [0xa8d65c]
push eax
call fcn.00798e10
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0xb8]
cmp byte [0xa8c5c5], 0
jne 0x8625fa
nop
cmp ecx, dword [ebp - 0x3c]
jbe 0x86264c
nop
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xcf12e273
cmp edx, esi
jbe 0x862641
mov edx, edi
xor edx, 0x30ed1270
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0xcf12edac
cmp esi, edx
jae 0x862bc8
xor edi, 0xcf12eda8
mov edx, ecx
xor edx, edi
and edi, ecx
lea edx, [edx + edi*2]
nop
push edx
push eax
call fcn.0091d82d
add esp, 8
mov al, 1
nop
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x21c
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov eax, dword [ebp - 0x2c]
lea eax, [eax + 0x9e9e98]
mov ecx, dword [eax]
cmp dword [ebp - 0x88], 0
jle 0x862b9b
nop
mov dword [ebp - 0xe8], eax
add ecx, eax
mov dword [ebp - 0x2c], ecx
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
shr ecx, 3
mov dword [ebp - 0x28], ecx
mov eax, ebx
shl eax, 0x1d
xor eax, ebx
mov dword [ebp - 0x20], eax
xor eax, 0x6aa6e05f
mov dword [ebp - 0x60], eax
xor ecx, 0x5d415e68
mov dword [ebp - 0x84], ecx
mov eax, ebx
shl eax, 4
mov dword [ebp - 0x40], eax
xor eax, 0x4a7224e6
mov dword [ebp - 0x80], eax
mov edi, ebx
xor edi, 0x15591fa0
mov eax, ebx
shr eax, 5
mov dword [ebp - 0x44], eax
mov ecx, ebx
shl ecx, 0x1b
xor ecx, ebx
mov dword [ebp - 0x54], ecx
xor ecx, 0x8037eba
mov edx, eax
xor edx, 0xaa2ce4d2
lea esi, [ebx*4]
mov dword [ebp - 0x38], esi
xor esi, 0xa81dc9c4
mov eax, ebx
xor eax, 0xee4ed60b
add ecx, dword [ebp - 0x60]
adc edx, dword [ebp - 0x84]
add ecx, edi
adc edx, dword [ebp - 0x80]
add ecx, eax
adc edx, esi
mov edi, dword [ebp - 0x40]
xor edi, 0x9a8758cb
mov eax, ebx
xor eax, 0x11b129f4
lea esi, [ebx*8]
mov dword [ebp - 0x68], esi
xor esi, 0x2b3ce021
mov dword [ebp - 0x60], esi
mov esi, ebx
xor esi, 0x97fc8145
add eax, ecx
adc edi, edx
add eax, esi
adc edi, dword [ebp - 0x60]
add eax, 3
mov dword [ebp - 0x84], eax
adc edi, 0
mov dword [ebp - 0x60], edi
lea eax, [ebx + ebx]
mov dword [ebp - 0x64], eax
xor eax, 0x9e25db18
mov dword [ebp - 0x80], eax
mov eax, dword [0xa6b1e0]
xor eax, ebx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0xe0], eax
mov eax, ebx
xor eax, 0x4776d90
mov ecx, ebx
xor ecx, 0xb3ea345e
mov edx, dword [ebp - 0x20]
xor edx, 0xcc15cba1
mov esi, dword [ebp - 0x28]
xor esi, 0x2d782252
add edx, ecx
adc esi, eax
add edx, 2
mov dword [ebp - 0xdc], edx
adc esi, 0
mov dword [ebp - 0xd8], esi
mov eax, ebx
shr eax, 1
mov ecx, ebx
shl ecx, 0x1f
xor ecx, ebx
xor ecx, 0x60dfd649
xor eax, 0xb8595470
mov edi, ebx
shr edi, 4
mov esi, ebx
shl esi, 0x1c
xor esi, ebx
xor esi, 0x12669a94
xor edi, 0x10f1e3e8
add esi, ecx
adc edi, eax
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor ecx, 0xad99656b
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x28]
mov edx, ecx
xor edx, 0xfa1d6f7e
mov dword [ebp - 0x6c], edx
xor eax, 0x88112bb0
mov dword [ebp - 0xc8], eax
xor ecx, 0xf39d7995
mov dword [ebp - 0xc4], ecx
xor dword [ebp - 0x64], 0xbe0a0651
mov eax, ebx
mov ecx, ebx
xor ecx, 0x9f2029b6
mov dword [ebp - 0xbc], ecx
mov ecx, ebx
xor ecx, 0xda923657
mov dword [ebp - 0x74], ecx
mov ecx, ebx
xor ecx, 0xf7eed44f
mov dword [ebp - 0xc0], ecx
shr ebx, 2
mov edx, eax
shl edx, 0x1e
xor edx, eax
mov eax, edx
xor eax, 0xc8253a7c
mov ecx, ebx
xor ecx, 0x5b51a747
add eax, esi
adc ecx, edi
add eax, dword [ebp - 0x70]
adc ecx, dword [ebp - 0x6c]
add eax, dword [ebp - 0xc8]
adc ecx, dword [ebp - 0xc4]
add eax, dword [ebp - 0xbc]
adc ecx, dword [ebp - 0x64]
add eax, dword [ebp - 0xc0]
adc ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x38]
xor esi, 0xab2155eb
mov edi, dword [ebp - 0x24]
xor edi, 0x37dac583
add edi, eax
adc esi, ecx
add edi, 4
mov dword [ebp - 0x6c], edi
adc esi, 0
mov dword [ebp - 0x70], esi
xor dword [ebp - 0x54], 0x6831503c
xor dword [ebp - 0x44], 0x1cbb1e6b
xor dword [ebp - 0x68], 0x9dab1a98
mov esi, dword [ebp - 0x24]
mov eax, esi
xor eax, 0xf7ceafc3
xor dword [ebp - 0x20], 0xe2e6a0e0
xor dword [ebp - 0x28], 0xb22af921
xor dword [ebp - 0x38], 0xb34db9e9
mov ecx, esi
xor ecx, 0x1bccda6c
xor edx, 0xe4332593
xor ebx, 0x433d4b45
mov edi, dword [ebp - 0x40]
xor edi, 0xa51983af
xor esi, 0x9d195f1f
add edx, dword [ebp - 0x54]
adc ebx, dword [ebp - 0x44]
add edx, eax
adc ebx, dword [ebp - 0x68]
add edx, dword [ebp - 0x20]
adc ebx, dword [ebp - 0x28]
add edx, ecx
adc ebx, dword [ebp - 0x38]
add edx, esi
adc ebx, edi
add edx, 3
mov dword [ebp - 0x64], edx
adc ebx, 0
mov dword [ebp - 0x68], ebx
xor esi, esi
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
jmp 0x862968
mov eax, dword [ebp - 0x20]
xor dword [ebp - 0x28], eax
xor dword [ebp - 0x38], ebx
add esi, dword [ebp - 0x48]
cmp esi, dword [ebp - 0x88]
jge 0x8622c5
nop
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x60]
adc edi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x98]
lea ebx, [eax + esi]
sub edx, ebx
sbb edi, 0
mov eax, dword [0xa6b1dc]
xor eax, dword [ebp - 0x24]
cmp eax, 0x530a411f
mov ecx, 3
je 0x8629aa
nop
mov dword [0xa6b1c8], 0x1cd408dc
mov ecx, 0xfffffffd
nop
cmp edx, dword [ebp - 0x48]
mov eax, edi
sbb eax, dword [ebp - 0x80]
mov eax, dword [ebx]
mov dword [ebp - 0x20], eax
mov ebx, dword [ebx + 4]
jge 0x862b3b
cmp dword [ebp - 0xe4], 0x84ad9d73
jne 0x862ae0
nop
mov ecx, dword [ebp - 0x7c]
shld edi, edx, cl
mov dword [ebp - 0x54], ebx
mov ebx, edx
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov eax, 0
cmovne ebx, eax
mov ecx, dword [ebp - 0xdc]
sub ecx, ebx
mov eax, dword [ebp - 0xd8]
sbb eax, edi
mov dword [ebp - 0x2c], eax
mov eax, ecx
mov dword [ebp - 0x74], edx
mul ebx
mov dword [ebp - 0x40], eax
imul edi, ecx
add edx, edi
mov eax, dword [ebp - 0x2c]
imul eax, ebx
add eax, edx
mov edx, eax
mov edi, dword [ebp - 0x40]
mov eax, edi
mov ecx, ebx
shl eax, cl
test bl, 0x20
mov ebx, 0
cmovne eax, ebx
mov ecx, eax
shld edx, edi, cl
shl edi, cl
test al, 0x20
cmovne edx, edi
cmovne edi, ebx
lea ecx, [edi + edi]
mov eax, edx
mov ebx, edx
shld eax, edi, cl
mov edx, edi
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
sub edi, edx
mov edx, edi
sbb ebx, eax
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
sbb edi, dword [ebp - 0x54]
mov eax, ecx
mov ebx, edx
mov dword [ebp - 0x40], edx
mul edx
imul edi, ebx
add edi, edx
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x44]
lea ecx, [edx + edx]
mov dword [ebp - 0x44], edx
shl edx, cl
mov ebx, dword [ebp - 0x20]
imul ebx, dword [ebp - 0x2c]
add edi, ebx
add edx, dword [ebp - 0x44]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x74]
add esi, dword [ebp - 0x30]
mov ebx, esi
sub ebx, dword [ebp - 0x48]
add ebx, esi
shl edx, cl
mov esi, dword [ebp - 0x20]
mov ecx, esi
sub ecx, ebx
imul ecx, ebx
mov ebx, esi
shl ebx, cl
add ebx, esi
shl ebx, cl
and edi, dword [ebp - 0x2c]
and eax, dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
mov dword [0xa6b1dc], 0x9aeee01
mov esi, ebx
mov ebx, edi
jmp 0x862b21
mov eax, edx
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne eax, ecx
mov edi, edx
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
test al, 0x20
mov eax, 0xffffffff
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
not eax
and ebx, eax
not edx
and dword [ebp - 0x20], edx
add esi, dword [ebp - 0xe0]
add esi, edi
mov edx, dword [ebp - 0x44]
inc edx
nop
mov eax, dword [ebp - 0xe8]
lea ecx, [eax + edx*4]
mov dword [ebp - 0x44], edx
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x40], 0
nop
mov eax, dword [0xa6b1c8]
xor eax, dword [ebp - 0x24]
cmp eax, 0x76966ab2
jne 0x862950
nop
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x68]
sbb edi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
add eax, edx
adc edi, ebx
mov ecx, dword [ebp - 0x48]
shl esi, cl
mov dword [ebp - 0x54], ebx
mov ebx, esi
xor ebx, ecx
and esi, ecx
lea esi, [ebx + esi*2]
xor edi, dword [ebp - 0x54]
xor eax, edx
mov dword [0xa6b1cc], 0x8b37ff85
cmp esi, dword [ebp - 0x88]
nop
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], edi
jne 0x862968
jmp 0x8622c5
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x8622c5
nop
mov dword [ebp - 0x10], 0
call fcn.00900ce1
nop
mov dword [ebp - 0x10], 1
call fcn.00900ce1
nop
mov dword [ebp - 0x10], 2
call fcn.00900ce1
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0xa6b1b4]
mov esi, dword [0xa6b19c]
sub esi, dword [ebp - 0x4c]
add esi, eax
mov ecx, esi
call dword [0xa37360]
mov ecx, dword [ebp - 0x20]
call esi
add esp, 0x10
pop ebp
ret