Function at 0x83ce00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x8c
mov dword [ebp - 0x38], ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x83ebe0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.0083ebb0
mov edx, dword [0xa36a38]
mov ecx, dword [0xa36a28]
mov esi, 0xffff3a6a
sub esi, eax
mov dword [ebp - 0x40], esi
sub ecx, esi
add ecx, edx
call dword [0xa0535c]
call ecx
mov ecx, eax
xor ecx, 0xbf54a233
mov dword [ebp - 0x28], ecx
mov ecx, eax
xor ecx, 0xbf54a22f
mov dword [ebp - 0x3c], ecx
mov ecx, eax
xor ecx, 0xbf54a238
mov dword [ebp - 0x2c], ecx
mov ecx, eax
xor ecx, 0xbf54a22b
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], eax
xor eax, 0xbf54a231
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x2d], 1
xor edi, edi
nop dword [eax + eax]
lea eax, [edi + edi*2]
mov edx, dword [ebp - 0x38]
lea ecx, [edx + eax*4]
add ecx, 0x60
mov dword [ebp - 0x44], ecx
mov ebx, dword [edx + eax*4 + 0x60]
cmp ebx, dword [edx + eax*4 + 0x64]
mov esi, 0
je 0x83cf11
nop
mov dword [ebp - 0x10], 0xffffffff
xor esi, esi
nop dword [eax + eax]
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
cmp dword [ebx + eax], ecx
jbe 0x83cef0
mov eax, dword [ebp - 0x28]
mov eax, dword [ebx + eax]
jmp 0x83cef5
mov eax, dword [ebp - 0x28]
add eax, ebx
push eax
push dword [ebp + 0xc]
call fcn.0084a350
add esp, 8
test eax, eax
je 0x83cf11
inc esi
add ebx, 0x1c
mov eax, dword [ebp - 0x44]
cmp ebx, dword [eax + 4]
jne 0x83ced0
nop
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x20]
cmp esi, eax
je 0x83cf41
lea eax, [edi + 1]
cmp edi, dword [ebp - 0x34]
setb byte [ebp - 0x2d]
mov edi, eax
xor eax, dword [ebp - 0x24]
cmp eax, 0xbf54a230
jne 0x83cea0
jmp 0x83d5e2
nop
cmp dword [0xa580c0], 0
jne 0x83cf87
nop
mov eax, dword [ebp - 0x24]
xor eax, 0xbf54a217
mov dword [ebp - 0x10], 0xffffffff
push eax
call fcn.008ea17d
add esp, 4
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x1c], ecx
mov dword [eax + 4], 0x920fc0
mov dword [eax], 0
mov dword [eax + 0x18], 0
mov byte [eax + 8], 0
mov dword [0xa580c0], eax
nop
mov eax, dword [0xa580c0]
mov ecx, dword [ebp - 0x24]
xor ecx, 0xbf54a223
mov dword [ebp - 0x5c], eax
mov dword [eax], ecx
mov dword [ebp + ecx - 0x98], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax - 0x98], 0
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + ecx]
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x2c]
cmp dword [edx + eax], ecx
jbe 0x83cfd0
mov eax, dword [ebp - 0x28]
mov edx, dword [edx + eax]
jmp 0x83cfd5
mov eax, dword [ebp - 0x28]
add edx, eax
mov dword [ebp - 0x20], edx
add eax, ebp
add eax, 0xffffff68
mov esi, dword [ebp - 0x24]
mov ebx, esi
xor ebx, 0xbf54a227
mov edi, dword [ebp - 0x48]
cmp edi, ebx
nop
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x60], ebx
jae 0x83d02b
mov esi, eax
mov eax, dword [0xa36a30]
mov ecx, dword [0xa36a24]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
push ebx
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
mov ebx, 0xf
jmp 0x83d0c2
nop
or edi, dword [ebp - 0x2c]
cmp edi, 0x7fffffff
mov ebx, 0x7fffffff
cmovb ebx, edi
mov ecx, esi
xor ecx, 0xbf54adc9
cmp edi, ecx
mov dword [0xa36a70], 0xae904141
mov dword [ebp - 0x10], 0xffffffff
jbe 0x83d083
mov eax, esi
xor eax, 0xbf54a213
add eax, ebx
push eax
call fcn.008ea17d
add esp, 4
mov ecx, esi
xor ecx, 0x40ab5dd7
xor esi, 0xbf54a214
add esi, eax
and esi, ecx
mov dword [esi - 4], eax
jmp 0x83d091
lea eax, [ebx + 1]
push eax
call fcn.008ea17d
add esp, 4
mov esi, eax
nop
mov eax, dword [ebp - 0x38]
mov dword [eax], esi
mov eax, dword [0xa36a30]
mov ecx, dword [0xa36a24]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov edi, dword [ebp - 0x48]
lea eax, [edi + 1]
mov dword [ebp - 0x34], eax
call dword [0xa0535c]
push dword [ebp - 0x34]
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
mov eax, ebx
sub eax, edi
mov ecx, dword [ebp - 0x24]
mov esi, ecx
xor esi, 0xbf54a234
cmp eax, esi
mov edx, dword [ebp - 0x4c]
mov dword [ebp + edx - 0x98], edi
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax - 0x98], ebx
mov dword [ebp - 0x98], 0x920fc0
nop
mov dword [ebp - 0x50], esi
jae 0x83d136
nop
movzx eax, byte [0xa368b4]
xor cl, 0x52
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x83d1f3
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x4a
mov edx, eax
xor dl, 0xee
nop word [eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa368b4], dl
je 0x83d19a
cmp al, byte [ebp - 0x20]
jne 0x83d120
jmp 0x83d1f3
lea ecx, [edi + esi]
mov eax, ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp + edx - 0x98], ecx
mov eax, dword [ebp - 0x38]
cmp ebx, dword [ebp - 0x2c]
jbe 0x83d152
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
add dword [ebp - 0x48], eax
movzx eax, byte [0xa368b4]
mov ecx, dword [ebp - 0x24]
xor cl, 0x52
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x83d295
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x4a
mov edx, eax
xor dl, 0xee
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0xa368b4], dl
je 0x83d227
cmp al, byte [ebp - 0x20]
jne 0x83d180
jmp 0x83d295
nop
mov ebx, dword [ebp - 0x24]
mov edi, ebx
xor edi, 0x4a2e7777
xor ebx, 0xbf54a232
mov eax, dword [ebp - 0x28]
cmp eax, 2
mov esi, 1
cmovge esi, eax
xor ecx, ecx
nop dword [eax]
lea eax, [edi + ecx]
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x9b7430]
xor al, byte [ebp - 0x24]
xor al, 0xe4
add byte [ecx + 0xa368b0], al
inc ecx
cmp esi, ecx
jne 0x83d1c0
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0xa368b4], al
mov dword [ebp - 0x10], 2
nop
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx eax, byte [ebp - 0x7c]
mov byte [esp + 4], al
mov eax, dword [ebp - 0x50]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xa368b0
mov ecx, dword [ebp - 0x38]
call fcn.0066d8c0
mov edx, eax
jmp 0x83d2d1
nop
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x4a2e7777
mov dword [ebp - 0x34], ecx
mov ebx, eax
xor ebx, 0xbf54a232
mov ecx, eax
xor cl, 0xe4
mov ch, al
xor ch, 0x1b
mov eax, dword [ebp - 0x28]
cmp eax, 2
mov esi, 1
cmovge esi, eax
xor edi, edi
xor ch, cl
nop word [eax + eax]
nop
mov eax, dword [ebp - 0x34]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x9b7430]
and al, ch
xor al, cl
add byte [edi + 0xa368b0], al
inc edi
cmp esi, edi
jne 0x83d260
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0xa368b4], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0xa36a30]
mov ecx, dword [0xa36a24]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
push dword [ebp - 0x50]
push 0xa368b0
push dword [ebp - 0x48]
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + eax], 0
nop
mov edx, dword [ebp - 0x38]
nop
mov eax, dword [ebp - 0x44]
mov edi, dword [eax]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
cmp dword [edi + eax], ecx
jbe 0x83d2ec
mov esi, edx
mov eax, dword [ebp - 0x28]
mov edi, dword [edi + eax]
jmp 0x83d2f1
mov esi, edx
add edi, dword [ebp - 0x28]
push edi
call fcn.008d08c0
add esp, 4
mov edx, esi
mov ebx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov ecx, esi
sub ecx, ebx
cmp ecx, eax
jae 0x83d331
nop
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx ecx, byte [ebp - 0x7c]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp], eax
mov ecx, edx
call fcn.0066d8c0
jmp 0x83d37f
nop
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x20], eax
mov edi, eax
add edi, ebx
mov ecx, edi
mov dword [ebp - 0x44], edi
mov dword [edx + 0x10], edi
cmp esi, dword [ebp - 0x2c]
jbe 0x83d34b
mov edx, dword [edx]
add ebx, edx
mov eax, dword [0xa36a34]
mov ecx, dword [0xa36a2c]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
mov edi, edx
call dword [0xa0535c]
push dword [ebp - 0x20]
push dword [ebp - 0x34]
push ebx
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov byte [edi + eax], 0
nop
mov ecx, dword [ebp - 0x4c]
mov dword [ebp + ecx - 0x7c], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax - 0x7c], 0
mov ecx, dword [ebp + ecx - 0x98]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x2c]
cmp dword [ebp + eax - 0x98], ecx
jbe 0x83d3b9
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp + eax - 0x98]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x28]
lea edi, [eax + ebp]
add edi, 0xffffff84
mov esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x44]
cmp eax, esi
nop
mov dword [ebp - 0x28], edi
jae 0x83d41b
mov ebx, eax
mov eax, dword [0xa36a30]
mov ecx, dword [0xa36a24]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
push esi
push dword [ebp - 0x20]
push edi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax - 0x7c], ebx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp + eax - 0x7c], ecx
mov dword [ebp - 0x7c], 0x920fc0
mov eax, edi
jmp 0x83d4f8
nop
or eax, dword [ebp - 0x2c]
cmp eax, 0x7fffffff
mov esi, 0x7fffffff
cmovb esi, eax
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, 0xbf54adc9
cmp eax, ecx
mov dword [ebp - 0x10], 2
nop
mov dword [ebp - 0x34], esi
jbe 0x83d483
mov eax, edx
xor eax, 0xbf54a213
add eax, esi
push eax
call fcn.008ea17d
add esp, 4
nop
mov edx, dword [ebp - 0x24]
mov ecx, edx
xor ecx, 0xbf54a214
add ecx, eax
mov esi, edx
xor esi, ecx
not ecx
xor edx, 0xbf54a228
and edx, ecx
xor esi, 0x40ab5dd7
or esi, edx
not esi
mov dword [esi - 4], eax
jmp 0x83d4a8
lea eax, [esi + 1]
mov ecx, dword [0xa570cc]
mov edx, ecx
xor edx, eax
and ecx, eax
add ecx, ecx
mov eax, ecx
xor eax, edx
and ecx, edx
lea eax, [eax + ecx*2]
push eax
call fcn.008ea17d
add esp, 4
mov esi, eax
nop
mov eax, dword [ebp - 0x28]
mov dword [eax], esi
mov eax, dword [0xa36a30]
mov ecx, dword [0xa36a24]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov ebx, dword [ebp - 0x44]
lea edi, [ebx + 1]
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
push edi
push dword [ebp - 0x20]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov dword [ebp + eax - 0x7c], ebx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov dword [ebp + eax - 0x7c], ecx
mov dword [ebp - 0x7c], 0x920fc0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
nop
mov ecx, dword [ebp - 0x5c]
add ecx, 4
mov dword [ebp - 0x10], 3
push eax
call fcn.007896e0
nop
mov eax, dword [0xa56ff4]
mov ecx, dword [ebp - 0x3c]
add eax, dword [ebp + ecx - 0x7c]
cmp eax, dword [ebp - 0x2c]
jbe 0x83d56f
nop
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
lea esi, [eax + 1]
mov edi, dword [ebp - 0x24]
mov edx, edi
xor edx, 0xbf54adc8
cmp esi, edx
jbe 0x83d564
nop
mov edx, dword [ecx - 4]
mov esi, edi
xor esi, 0x40ab5dcb
add esi, ecx
sub esi, edx
mov ecx, edi
xor ecx, 0xbf54a217
cmp esi, ecx
jae 0x83d5ff
mov ecx, edi
xor ecx, 0xbf54a213
add eax, ecx
mov esi, eax
mov ecx, edx
nop
push esi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax - 0x98]
cmp eax, dword [ebp - 0x2c]
jbe 0x83d5e2
nop
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
lea esi, [eax + 1]
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
xor ecx, 0xbf54adc8
cmp esi, ecx
jbe 0x83d5d7
nop
mov ecx, dword [edx - 4]
mov esi, ebx
xor esi, 0x40ab5dcb
mov edi, esi
xor edi, edx
and esi, edx
lea edx, [edi + esi*2]
sub edx, ecx
mov esi, ebx
xor esi, 0xbf54a217
cmp edx, esi
jae 0x83d60c
mov edx, ebx
xor edx, 0x85ae5964
sub eax, edx
xor ebx, 0xbf54a213
mov esi, eax
xor esi, ebx
and ebx, eax
add esi, edx
lea esi, [esi + ebx*2]
mov edx, ecx
nop
push esi
push edx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
movzx eax, byte [ebp - 0x2d]
and al, 1
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 8
nop
mov dword [ebp - 0x10], 0
call fcn.008cd651
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0xa36a3c]
mov esi, dword [0xa36a20]
sub esi, dword [ebp - 0x40]
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x7c]
call esi
add esp, 0x10
pop ebp
ret