Function at 0x415fae
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov edi, ecx
mov dword [esp + 0x2c], edi
mov bl, byte [esp + 0x98]
or dword [0x488318], 0x45ded82b
mov eax, dword [0x487380]
mov dword [0x4872e8], eax
call fcn.00430d60
mov ebp, eax
mov dword [esp + 0x20], edx
mov ax, word [0x48ee92]
add eax, 0xffffe4ea
mov word [0x48ee92], ax
mov eax, dword [0x488a00]
push edi
call dword [0x485ff8]
mov eax, dword [0x48a1c0]
lea ecx, [eax - 1]
mov dword [0x48a1c0], ecx
mov ecx, dword [0x48b34c]
mov dx, word [0x48ef0e]
inc edx
mov word [0x48ef0e], dx
movsx edx, dx
imul edx, ecx
cmp eax, edx
jle 0x41603e
mov eax, dword [0x4886cc]
imul eax, eax, 0xc37022fb
mov dword [0x4886cc], eax
test bl, bl
je 0x416086
mov eax, dword [0x48b1dc]
xor eax, 0x5ca47447
cmp eax, 0xb0f8ffde
jg 0x416067
mov eax, dword [0x4893b4]
sar eax, 6
imul eax, eax, 0xf21884d4
add dword [0x489308], eax
lea esi, [edi + 0x18]
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
xor ebx, ebx
xor ecx, ecx
lock cmpxchg8b qword [esi]
jne 0x416070
or dword [0x487c2c], 0x27070c1
jmp 0x416089
lea esi, [edi + 0x18]
mov eax, dword [0x487170]
imul eax, eax, 0xbe9564ed
mov dword [0x487170], eax
xor eax, eax
xor edx, edx
xor ebx, ebx
xor ecx, ecx
lock cmpxchg8b qword [esi]
cmp ebp, eax
mov eax, dword [esp + 0x20]
sbb eax, edx
mov edx, dword [esp + 0x94]
jae 0x416105
mov word [0x48d5e6], 0xd4b5
mov eax, dword [edi + 0x2c]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x28]
mov dword [edx + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov dword [edx + 4], ecx
mov dword [edx], eax
xor dword [0x48ac48], 0xfa23fcd3
mov ax, word [0x48ef98]
cwde
not eax
mov ecx, dword [0x487dc8]
shl ecx, 6
and ecx, eax
or dword [0x487888], ecx
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
xor ebx, ebx
jmp 0x41612e
mov dword [esp + 0x14], 0
mov eax, dword [0x487814]
add eax, 0x384860dc
xor eax, 0x1a20fe15
or dword [0x4879d8], eax
xor dword [0x4876f8], 0x653e20f9
mov bl, 1
mov ax, word [0x48e89a]
cwde
imul eax, eax, 0x988e7f71
and eax, 0xfa3c0aa6
mov dword [0x4877a4], eax
push edi
call dword [0x485ffc]
mov ax, word [0x48f15e]
cwde
imul eax, eax, 0xe28a5830
add dword [0x48b9a4], eax
test bl, bl
je 0x416236
mov eax, dword [0x48b974]
dec eax
mov dword [0x48b974], eax
mov cx, word [0x48c448]
or ecx, eax
mov word [0x48c448], cx
mov eax, dword [0x48920c]
cmp eax, 0x9d3cc681
jne 0x4161ba
mov eax, dword [0x489d60]
xor eax, 0xcb022af4
mov ecx, dword [0x48a704]
mov edx, 0x2322388a
sub edx, ecx
cmp eax, edx
jge 0x4161ba
mov ax, word [0x48d614]
or eax, 0x1108
mov word [0x48d614], ax
add dword [0x486f04], 0x2ac98e35
push 0x600
push 0x75a
call fcn.00418b05
add esp, 8
mov ebx, eax
mov eax, dword [0x48a3a4]
mov cx, word [0x48da3a]
movsx ecx, cx
sar ecx, 8
and ecx, eax
mov eax, dword [0x48a994]
lea edx, [eax - 1]
mov dword [0x48a994], edx
add eax, 0xe9ede716
or eax, 0x3eea6564
cmp ecx, eax
jg 0x416249
mov eax, dword [0x48b230]
sar eax, 9
mov ecx, dword [0x486820]
shl ecx, 5
lea eax, [eax + ecx - 0x4776fe70]
cmp eax, 0x311456a8
jl 0x41623f
mov ax, word [0x48cd76]
inc eax
mov word [0x48cd76], ax
jmp 0x416249
mov esi, dword [esp + 0x14]
jmp 0x416cd6
add dword [0x48bd48], 0xde5739e
movzx edx, byte [ebx]
mov eax, dword [0x4898d4]
imul eax, eax, 0x41dc06dc
mov dword [0x4898d4], eax
mov eax, dword [0x48a16c]
lea ecx, [eax - 1]
mov dword [0x48a16c], ecx
xor eax, 0x97489b45
cmp eax, 0x800630bf
jg 0x416287
mov ax, word [0x48d37a]
and eax, 0x29f5
mov word [0x48d37a], ax
xor eax, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov eax, dword [0x48c08c]
cmp eax, 0x498dbd4f
je 0x4162af
add dword [0x489080], 0x429888
mov dword [esp + 0x28], ebx
mov word [esp + 0x70], 2
mov eax, dword [0x4899f4]
and eax, 0x6b3b8b2a
xor eax, 0xa7d3fbea
and dword [0x48783c], eax
mov eax, dword [0x4898b4]
imul eax, eax, 0xf870ceb4
mov dword [0x4898b4], eax
mov dword [esp + 0x5c], 0x13
mov ax, word [0x48c398]
cwde
xor eax, 0xb38159f6
mov ebx, edx
cmp eax, 0x5281cfa
jl 0x41630c
mov dword [esp + 0x18], ebp
mov dword [0x489ad0], 0x3eebb12a
jmp 0x416320
mov dword [esp + 0x18], ebp
mov eax, dword [0x48b1a8]
xor eax, 0xb25dee46
or dword [0x488520], eax
mov dword [esp + 8], esi
mov dword [esp + 0x60], 0
and dword [0x487814], 0x5ddff6ee
mov dword [esp + 0x64], 7
mov ax, word [0x48e0ac]
cwde
sar eax, 0xa
imul eax, eax, 0x107fa1d6
and eax, 0xda82a89a
mov ecx, dword [0x48ab08]
or ecx, 0x45e1c895
cmp eax, ecx
jg 0x416374
mov ax, word [0x48eaca]
add eax, 0x16b1
mov word [0x48eaca], ax
mov byte [esp + 0x68], 3
mov eax, dword [0x48732c]
add eax, eax
or eax, 0x7f31
mov cx, word [0x48cb24]
xor ecx, eax
mov word [0x48cb24], cx
lea ebp, [esp + 0x48]
mov ecx, ebp
call fcn.00420b8e
mov ax, word [0x48c6f2]
dec eax
mov word [0x48c6f2], ax
xor esi, esi
mov ecx, ebp
push esi
push ebx
call fcn.004309bc
and dword [0x488d24], 0x1b36181
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], 0
test bl, bl
je 0x416435
lea esi, [esp + 0x34]
lea ebp, [esp + 0x48]
mov eax, dword [0x486094]
or eax, 0xf8c1
mov cx, word [0x48e706]
imul ecx, eax
mov word [0x48e706], cx
mov ecx, ebp
push esi
call fcn.004129c0
mov eax, dword [0x48ae80]
lea ecx, [eax - 1]
mov dword [0x48ae80], ecx
mov cx, word [0x48d4f6]
movsx ecx, cx
not ecx
neg ecx
lea eax, [eax + ecx - 1]
xor eax, 0x5c1a266
add dword [0x48a110], eax
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x34], eax
cmp eax, ebx
jne 0x4163da
mov eax, dword [0x489820]
inc eax
mov dword [0x489820], eax
and eax, 0xb670e69e
xor eax, 0x814d1f1a
and dword [0x48a74c], eax
lea eax, [esp + 0x48]
push eax
call fcn.00423fae
add esp, 4
mov ax, word [0x48e618]
cwde
not eax
imul eax, eax, 0xbbacb76e
test bl, bl
mov ecx, dword [0x4882e0]
lea eax, [ecx + eax - 0x246ba095]
mov dword [0x4882e0], eax
mov dword [esp + 0xc], 0
mov eax, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
je 0x416b23
xor esi, esi
lea ebp, [esp + 0x34]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
jmp 0x416587
mov eax, dword [0x4871e4]
sar eax, 9
mov ecx, dword [0x48aee8]
mov edx, dword [0x4879d4]
imul edx, ecx
add edx, eax
mov eax, dword [0x488aa4]
imul eax, edx
mov dword [0x488aa4], eax
add esi, 0xfffffffc
mov eax, dword [0x48baa8]
lea ecx, [eax - 1]
mov dword [0x48baa8], ecx
mov cx, word [0x48c2f6]
and ecx, eax
mov word [0x48c2f6], cx
mov eax, dword [0x4867c8]
add ebx, 0xa
cmp esi, ebx
jl 0x416ae9
mov eax, dword [0x486ddc]
and eax, 0xce0ac498
mov ecx, dword [0x48870c]
imul ecx, eax
mov dword [0x48870c], ecx
mov ecx, ebp
call fcn.0041dc96
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
mov eax, dword [0x48ae1c]
mov ecx, dword [0x487d34]
lea eax, [eax + ecx + 0x1235081b]
mov ecx, dword [0x4868f0]
sar ecx, 5
or ecx, 0xacd8cfc1
mov bl, 1
mov dword [esp + 0x1c], 0
cmp eax, ecx
jge 0x416afd
mov ax, word [0x48ceda]
cwde
shl eax, 7
xor dword [0x48683c], eax
jmp 0x416afd
mov edi, ebp
mov eax, dword [0x489a90]
cmp eax, 0x9c381fe7
je 0x41659f
add dword [0x48c088], 0xacba0d9
lea ebp, [esp + 0x48]
mov ecx, ebp
push esi
mov dword [esp + 0x34], esi
call fcn.0041f624
mov eax, dword [eax]
add eax, eax
lea eax, [eax + eax*2]
or eax, 1
mov eax, dword [ebx + eax]
mov dword [esp + 0x74], eax
or dword [0x487ad4], 0xfd46c053
mov ecx, ebp
push esi
call fcn.0041f624
mov eax, dword [eax]
add eax, eax
lea eax, [eax + eax*2]
or eax, 1
mov ax, word [eax + ebx + 4]
mov word [esp + 0x72], ax
mov ax, word [0x48e00a]
cwde
mov ecx, dword [0x48a36c]
xor ecx, eax
xor ecx, 0xd0953a13
mov dword [0x48a36c], ecx
mov ebp, edi
mov ecx, ebp
call fcn.004286d6
mov eax, dword [0x4875b8]
inc eax
mov dword [0x4875b8], eax
mov ecx, dword [0x489c98]
and eax, ecx
dec ecx
mov dword [0x489c98], ecx
and eax, 0x8fc7b3ef
or dword [0x48b00c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x69], eax
add dword [0x489d14], 0xefebffdb
mov ax, word [esp + 0x72]
mov word [esp + 0x6d], ax
xor dword [0x489608], 0x7bdfddd2
mov ecx, ebp
push 0x13
lea eax, [esp + 0x60]
push eax
call fcn.0041ecec
mov eax, dword [0x488650]
imul eax, eax, 0xda7ec2cf
add eax, 0x3696aef0
mov cx, word [0x48eedc]
movsx ecx, cx
not ecx
imul ecx, ecx, 0x358b9e19
xor ecx, 0x99245ca5
cmp eax, ecx
jne 0x41669f
mov eax, dword [0x48a390]
imul eax, eax, 0x76ad22bf
mov dword [0x48a390], eax
mov edi, dword [esp + 0x2c]
mov ecx, edi
push 0
push 2
push ebp
lea eax, [esp + 0x7c]
push eax
call fcn.0040900e
test eax, eax
jle 0x4166ea
xor dword [0x4897b8], 0xd3a81439
mov ecx, ebp
call fcn.004178c0
cmp eax, 0x400
ja 0x4166fb
mov eax, dword [0x489754]
sar eax, 6
add eax, 0x3dc9c5b1
xor dword [0x48ba34], eax
xor ebx, ebx
jmp 0x416afd
add dword [0x48add8], 0xf0008a0
xor ebx, ebx
jmp 0x416afd
mov eax, dword [0x4871c4]
mov ecx, dword [0x48b924]
sub eax, ecx
cmp eax, 0x7af8b9a
je 0x41672d
mov eax, dword [0x486d14]
inc eax
mov dword [0x486d14], eax
mov cx, word [0x48e65a]
movsx ecx, cx
imul ecx, eax
mov dword [0x48b90c], ecx
mov ecx, ebp
call fcn.004178c0
cmp eax, 0x4001
jb 0x41674c
add dword [0x48af14], 0x67a7a292
xor ebx, ebx
jmp 0x416afd
or dword [0x486330], 0xb2fe73bb
mov ecx, ebp
call fcn.0041dc96
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
cmp dword [eax], edx
sbb ecx, dword [esp + 0x20]
jae 0x4167a7
and dword [0x487fb4], 0xfe6b6fff
mov eax, dword [esp + 0x1c]
inc eax
xor dword [0x48a5d0], 0x6b170415
cmp eax, 3
jne 0x416858
or dword [0x48b74c], 0xb40c2141
mov bl, 1
mov dword [esp + 0x1c], 3
jmp 0x416afd
mov eax, dword [0x489d30]
shl eax, 5
add eax, 0x3d6a5e
mov ecx, dword [0x487ddc]
xor ecx, eax
cmp ecx, 0xa1e06771
jne 0x4167e2
mov eax, dword [0x489d70]
dec eax
mov dword [0x489d70], eax
mov ecx, dword [0x48ae28]
sub eax, ecx
xor eax, 0x50057d9c
add dword [0x489af8], eax
mov eax, dword [0x48b0f8]
mov ecx, 0x7b13ee98
sub ecx, eax
and ecx, 0xb0120cfb
mov ax, word [0x48c684]
cwde
cmp ecx, eax
jl 0x416809
add dword [0x48723c], 0xfe5eeeb5
mov ecx, ebp
call fcn.0041dc96
movzx edi, word [eax + 8]
add dword [0x48c180], 0x5c2c2114
lea eax, [edi + edi]
lea esi, [eax + eax*2]
mov ecx, ebp
call fcn.004178c0
add eax, 0xfffffbf6
cmp esi, eax
jbe 0x416870
mov ax, word [0x48d954]
or eax, 0x868
mov word [0x48d954], ax
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov edi, dword [esp + 0x2c]
jmp 0x416afd
mov dword [esp + 0x1c], eax
mov eax, dword [0x48adac]
not eax
or dword [0x48958c], eax
xor ebx, ebx
jmp 0x416afd
mov eax, dword [0x489c44]
add eax, 0xbb8d
or eax, 0x988
mov cx, word [0x48e51e]
sub ecx, eax
mov word [0x48e51e], cx
dec dword [0x48a14c]
mov eax, dword [0x4881e0]
add dword [0x4861a0], eax
test di, di
je 0x41697d
xor ebx, ebx
mov ax, word [0x48c5f4]
lea ecx, [eax - 1]
mov word [0x48c5f4], cx
cwde
mov ecx, dword [0x48989c]
add ecx, eax
mov eax, dword [0x48bbd0]
xor eax, ecx
not eax
add dword [0x48b498], eax
mov ebp, dword [esp + 0x74]
lea ecx, [esp + 0x34]
call fcn.0041dc96
cmp ebp, dword [eax + ebx + 0xa]
jne 0x41695f
mov ax, word [0x48f1a6]
movzx ebp, word [esp + 0x72]
lea ecx, [esp + 0x34]
call fcn.0041dc96
movzx eax, word [eax + ebx + 0xe]
cmp ebp, eax
je 0x4169b4
mov eax, dword [0x48ab74]
lea ecx, [eax + 1]
mov dword [0x48ab74], ecx
mov ecx, dword [0x48a05c]
add ecx, 0x32d4e5e2
mov edx, dword [0x48a6b8]
or edx, ecx
cmp eax, edx
jne 0x41695f
mov eax, dword [0x4865a0]
cmp eax, 0xb5d276bd
jl 0x41694c
mov ax, word [0x48e27c]
and eax, 0xa0db
mov word [0x48e27c], ax
jmp 0x41695f
mov ax, word [0x48c43e]
inc eax
mov word [0x48c43e], ax
mov ax, word [0x48c450]
mov eax, dword [0x489adc]
lea ecx, [eax - 1]
mov dword [0x489adc], ecx
or dword [0x48b38c], eax
add ebx, 6
dec edi
jne 0x4168ab
mov eax, dword [0x48b9f4]
imul eax, eax, 0xe588e4e0
and dword [0x486e84], eax
mov eax, dword [0x48635c]
or dword [0x48a10c], 0x96048083
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov edi, dword [esp + 0x2c]
lea ebp, [esp + 0x34]
jmp 0x416afd
mov ebx, esi
mov eax, dword [0x48b320]
dec eax
mov dword [0x48b320], eax
cmp eax, 0x965f8aaa
jne 0x4169d3
mov eax, dword [0x488ebc]
mov word [0x48dbec], ax
mov eax, dword [0x488344]
mov ecx, dword [0x48a434]
imul ecx, eax
imul eax, ecx, 0x5e6cbcc0
mov dword [0x48a434], eax
mov eax, dword [0x48b9f4]
imul eax, eax, 0xe588e4e0
and dword [0x486e84], eax
mov eax, dword [0x486510]
imul eax, eax, 0x5ab01aa7
add eax, 0x7843
mov cx, word [0x48da82]
xor ecx, eax
mov word [0x48da82], cx
mov esi, 0x408
push esi
push 0x2bb
call fcn.00418b05
add esp, 8
mov edi, eax
mov eax, dword [0x486354]
or dword [0x486234], eax
lea ebp, [esp + 0x34]
mov ecx, ebp
call fcn.004178c0
mov dword [esp + 0x1c], eax
mov ecx, ebp
call fcn.0041dc96
push dword [esp + 0x1c]
push eax
push edi
call fcn.00427573
add esp, 0xc
and dword [0x48881c], 0x77d33ffd
push edi
push esi
mov esi, eax
call fcn.0042862d
add esp, 8
mov ax, word [0x48c2b2]
dec eax
mov word [0x48c2b2], ax
cwde
mov ecx, dword [0x489980]
sub ecx, eax
mov dword [0x489980], ecx
cmp esi, 5
mov edi, dword [esp + 0x2c]
jl 0x416aab
mov ecx, ebp
call fcn.004178c0
cmp esi, eax
jbe 0x4164bb
mov dword [0x487408], 0x4202044
mov ax, word [0x48e8d2]
mov eax, dword [0x4888d8]
mov ecx, dword [0x48a208]
and eax, ecx
dec ecx
mov dword [0x48a208], ecx
and eax, 0x1253
mov cx, word [0x48eb62]
sub ecx, eax
mov word [0x48eb62], cx
mov eax, dword [0x4867c8]
or dword [0x488fd8], 0xc2aaa33
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov ecx, ebp
call fcn.004019e0
test bl, bl
jne 0x416b1f
mov esi, dword [esp + 0x30]
inc esi
mov eax, dword [esp + 0x24]
cmp esi, eax
mov ebx, dword [esp + 0x28]
jne 0x416587
jmp 0x416b23
mov ebx, dword [esp + 0x28]
mov ax, word [0x48ca86]
inc eax
mov word [0x48ca86], ax
cwde
mov ecx, dword [0x488930]
sub ecx, eax
mov dword [0x488930], ecx
lea eax, [esp + 0x5c]
push 0x13
push eax
call fcn.0042076e
add esp, 8
or dword [0x4887fc], 0x9965f4e0
push ebx
push 0x600
call fcn.0042862d
add esp, 8
mov eax, dword [0x48a5e8]
add eax, eax
mov ecx, 0xae8c3a2d
sub ecx, eax
mov eax, dword [0x48698c]
shr eax, 0xa
xor eax, ecx
mov word [0x48e246], ax
mov ebx, dword [esp + 0xc]
mov eax, ebx
mov ebp, dword [esp + 0x10]
or eax, ebp
mov esi, dword [esp + 0x14]
je 0x416caf
mov eax, dword [0x48bf5c]
shl eax, 7
mov ecx, dword [0x48b3ec]
sub ecx, eax
mov dword [0x48b3ec], ecx
push edi
call dword [0x485ff8]
mov eax, dword [0x489d64]
inc eax
mov dword [0x489d64], eax
and eax, 0x1dd7a7d9
mov ecx, dword [0x48869c]
and ecx, 0x7d1ad7dc
cmp eax, ecx
jae 0x416be1
mov dword [0x488680], 0xa78b3436
mov eax, dword [esp + 0x7c]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x20], eax
xor dword [0x486768], 0x820975f4
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov esi, dword [esp + 8]
mov ecx, ebp
lock cmpxchg8b qword [esi]
jne 0x416c11
mov eax, dword [0x48a2c0]
sar eax, 8
or eax, 0xbc0c94c7
mov ecx, dword [0x4882a0]
imul ecx, eax
mov dword [0x4882a0], ecx
push edi
call dword [0x485ffc]
xor dword [0x48ae6c], 0x4415fb46
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x94]
mov edx, ecx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov ax, word [0x48cfc0]
cwde
mov ecx, dword [0x48bc98]
lea eax, [eax + ecx - 0x568ce920]
mov dword [0x48bc98], eax
mov eax, dword [0x4861fc]
lea ecx, [eax + 1]
mov dword [0x4861fc], ecx
add eax, 0x16ca
mov cx, word [0x48de80]
and ecx, eax
and ecx, 0x9b7e
mov word [0x48de80], cx
xor esi, esi
inc esi
mov eax, dword [0x486b64]
cmp eax, 0x6e44032f
jl 0x416ccd
mov ax, word [0x48e69c]
cwde
add eax, 0xdcc19bec
and dword [0x48b324], eax
lea ecx, [esp + 0x48]
call fcn.0041ddec
add dword [0x48aedc], 0x19dc3969
mov eax, esi
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 8