Function at 0x100afb40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov esi, esp
mov dword [esi + 0x30], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x34], eax
mov eax, dword [0x101835f0]
xor eax, ebp
mov dword [esi + 0x58], eax
mov eax, dword [0x10181ccc]
xor edx, edx
div dword [0x10181cd0]
xor eax, 0x70c9fa41
imul eax, eax, 0xe96e2db7
imul eax, eax, 0x24df2ef7
mov ecx, 0x4d4c66f6
xor edx, edx
div ecx
imul eax, eax, 0x87cb251b
add eax, 0x3f8ac404
xor eax, 0x63c9393e
or eax, 0x41d09a3e
sub eax, 0xcf13bbec
or eax, 0xf9b40a0d
sub eax, 0xc2644a9
imul eax, eax, 0x7d4e71d
imul eax, eax, 0xb758c4c9
mov ecx, 0xf086ec1b
xor edx, edx
div ecx
or eax, 0x337b6e7a
imul eax, eax, 0x909c5266
xor eax, 0x3a409e0c
and eax, 0x63f66bba
or eax, 0x5c1d7998
add eax, 0xfb7b631
add eax, 0x8be16d59
or eax, 0x1246d701
and eax, 0x9836e720
imul eax, eax, 0xe9d2999b
mov ecx, 0xde09e613
xor edx, edx
div ecx
imul eax, eax, 0xa853763b
xor eax, 0x6d89dae7
add eax, 0xb2656de8
or eax, 0x56f6be55
imul eax, eax, 0x9c2baa36
xor eax, 0x8bd42ce8
or eax, 0x11c2bbf6
and eax, 0xd5ba97c2
mov ecx, 0x9471c40b
xor edx, edx
div ecx
or eax, 0x4de8bc18
imul eax, eax, 0x2526704
xor eax, 0xe6857bbc
and eax, 0xacab6341
cmp eax, 0x9a4859f2
jb 0x100b0147
mov eax, dword [0x10181cd4]
imul eax, dword [0x10181cd8]
xor eax, 0x2bf3cc38
xor eax, 0x55cbd388
mov ecx, 0x4779a668
xor edx, edx
div ecx
xor eax, 0xe3a86a4d
add eax, 0xbfdc1d5c
imul eax, eax, 0xda9000fc
sub eax, 0xe7ba0bd7
mov ecx, 0x52f64a6e
xor edx, edx
div ecx
or eax, 0xc821520
sub eax, 0xae5f94e6
add eax, 0x4167e18f
and eax, 0x799c930a
add eax, 0xba2cfa7
or eax, 0xc971567a
imul eax, eax, 0xc395ad51
mov ecx, 0xc4b7b7be
xor edx, edx
div ecx
mov ecx, 0x51418968
xor edx, edx
div ecx
sub eax, 0x6711ed5b
xor eax, 0xe744d425
and eax, 0x9ae79638
imul eax, eax, 0x332aeb09
mov ecx, 0x16ae3f30
xor edx, edx
div ecx
and eax, 0xd52f755e
sub eax, 0x18175264
and eax, 0xde91bc26
sub eax, 0x539cae28
xor eax, 0xf1f51574
and eax, 0xf2f85f8e
mov ecx, 0xea05dae0
xor edx, edx
div ecx
or eax, 0x47dc0711
mov ecx, 0xa450c22b
xor edx, edx
div ecx
or eax, 0x1270f16c
imul eax, eax, 0x312d257e
or eax, 0x77cef39e
sub eax, 0xa476369c
xor eax, 0x19d4362b
imul eax, eax, 0x69dac04d
or eax, 0xbda3f0c
cmp eax, 0x68a58d4e
jb 0x100b02a0
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov eax, dword [0x10181cdc]
mov ecx, dword [0x10181ce0]
add eax, ecx
xor eax, 0x1ae134b
imul eax, eax, 0x984ccfc
add eax, 0x54c62612
or eax, 0x2842050
xor eax, 0x50223
or eax, 0xf868dc88
mov ecx, 0x8284079f
mul ecx
shr edx, 0x1c
imul eax, edx, 0x5db58eed
add eax, 0xfa09b092
and eax, 0x2038102
add eax, 0xc8e23f9a
mov dword [esi + 0x20], eax
mov ecx, 0x2f46873f
mul ecx
mov eax, dword [esi + 0x20]
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
or eax, 0xb630340a
imul eax, eax, 0x719dc2e7
xor eax, 0xfbed6aae
mov ecx, 0x17c6f791
mul ecx
shr edx, 0x1c
imul eax, edx, 0x6ab3d49d
add eax, 0xff10ae33
xor eax, 0x2029e000
or eax, 0x91d612ef
add eax, 0x3ec25bf8
or eax, 0x7e5c2590
imul eax, eax, 0xfe47cd9d
add eax, 0x80f3154c
xor eax, 0x40802020
and eax, 0xcfa26223
imul eax, eax, 0x4ccb5cf7
mov dword [esi + 0x2c], eax
push eax
mov eax, esp
push eax
mov edx, esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x24], ecx
mov esp, ecx
mov dword [eax], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov dword [esi + 0x28], edx
mov eax, dword [eax]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.101263b0
mov ecx, dword [esi + 0x24]
add esp, 8
call fcn.100b0350
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
fstp qword [esi + 0x40]
movsd xmm0, qword [esi + 0x40]
movsd qword [ecx], xmm0
cmp eax, 0x493b8ef2
je 0x100afd47
mov eax, dword [0x10181ce4]
add eax, dword [0x10181ce8]
and eax, 0xd32bfcd4
sub eax, 0x4c94a33a
or eax, 0x59df4be4
or eax, 0x364a058e
sub eax, 0x54a81068
imul eax, eax, 0xca4524e8
add eax, 0xafdaa6ea
xor eax, 0xfebaa6b6
add eax, 0x722fef2c
xor eax, 0xc0c61175
add eax, 0xd8a5ca9a
xor eax, 0xb860c603
imul eax, eax, 0xb5daf3e1
xor eax, 0x9115060
imul eax, eax, 0x6c94ef4f
xor eax, 0xd1a324c
mov ecx, 0xcdd16de2
xor edx, edx
div ecx
xor eax, 0x6671c584
and eax, 0x95b6fa9f
or eax, 0xee3a5257
sub eax, 0xaeb053dc
add eax, 0x592e560d
imul eax, eax, 0xbc8a0d64
or eax, 0xdd3906ba
imul eax, eax, 0x7ce5dc16
add eax, 0x1abbe32c
xor eax, 0x93b3d7fd
and eax, 0xf222c25c
sub eax, 0x83681d7
xor eax, 0xa6d3867b
or eax, 0xe8e28b48
imul eax, eax, 0xa1b0fbd3
xor eax, 0x36ec77aa
xor eax, 0xff38227f
mov ecx, 0xf9c71a72
xor edx, edx
div ecx
mov ecx, 0xbd518a14
xor edx, edx
div ecx
imul eax, eax, 0x2b41f3de
sub eax, 0x92a0e3a6
cmp eax, 0x4d20274d
je 0x100afc51
mov eax, dword [0x10181cec]
imul eax, dword [0x10181cf0]
xor eax, 0x6b853356
mov ecx, 0xd589f460
xor edx, edx
div ecx
xor eax, 0x5d0dc871
xor eax, 0x4864270d
mov ecx, 0xbcb97134
xor edx, edx
div ecx
mov ecx, 0x7e4fdae4
xor edx, edx
div ecx
xor eax, 0xeb747191
add eax, 0xdccbf690
imul eax, eax, 0xb2c3c845
sub eax, 0x38088d60
mov ecx, 0x8b13ba56
xor edx, edx
div ecx
and eax, 0xaa6f0e5d
mov ecx, 0x15553689
xor edx, edx
div ecx
add eax, 0x7daa2e4c
mov ecx, 0x36bf40a0
xor edx, edx
div ecx
add eax, 0xfd98b6ef
sub eax, 0xd8635216
and eax, 0x27fd1dc2
or eax, 0xbd3ce23c
or eax, 0x6b8b63e4
and eax, 0xea55177
mov ecx, 0xdd19ee4d
xor edx, edx
div ecx
xor eax, 0xe6aa0286
imul eax, eax, 0xb0f6c92f
add eax, 0xf0258a61
sub eax, 0x4e878cd5
mov ecx, 0xa6de0c18
xor edx, edx
div ecx
add eax, 0x9606dd84
add eax, 0x7cfbbe65
xor eax, 0x9cfefa70
or eax, 0x4fcde251
sub eax, 0x795d0f13
mov ecx, 0x7153966a
xor edx, edx
div ecx
and eax, 0xe981cbe4
or eax, 0x629f114d
or eax, 0x3c59d927
xor eax, 0x30a056a3
imul eax, eax, 0x7ac190dd
cmp eax, 0xb3490f3b
jae 0x100b02f2
mov eax, dword [0x10181cf4]
xor edx, edx
div dword [0x10181cf8]
or eax, 0xb59af6a0
xor eax, 0x863a202
and eax, 0x5d5932dc
mov ecx, 0xdcd70369
xor edx, edx
div ecx
mov ecx, 0x1adc5520
xor edx, edx
div ecx
and eax, 0x24a99db3
and eax, 0x448bfdcd
and eax, 0x2a834fe6
xor eax, 0x49ae096c
sub eax, 0x4696cf23
mov ecx, 0x813698eb
xor edx, edx
div ecx
add eax, 0x2116b8ec
xor eax, 0xedacec5e
imul eax, eax, 0xa01260ed
sub eax, 0xb0b82f2
add eax, 0x736fc327
or eax, 0x8511378a
imul eax, eax, 0x8a48fb3
sub eax, 0x3d5bbef6
add eax, 0x8849a0c4
and eax, 0x20e774ce
and eax, 0x93be3d78
mov ecx, 0x1a53e08b
xor edx, edx
div ecx
add eax, 0x42f25bd9
xor eax, 0xedef93d6
xor eax, 0x2421792
xor eax, 0x89d44904
mov ecx, 0xae014129
xor edx, edx
div ecx
imul eax, eax, 0x1f69b63d
mov ecx, 0xd96e9241
xor edx, edx
div ecx
or eax, 0x1c2c542
and eax, 0x6ee49cd
sub eax, 0xe2da333c
imul eax, eax, 0xe982d4b2
and eax, 0xcc16acf4
imul eax, eax, 0x75d71b81
sub eax, 0x69039da6
or eax, 0x25e90874
cmp eax, 0xa5e610c5
je 0x100b02f2
mov ecx, dword [esi + 0x58]
xor ecx, ebp
call fcn.10126c4a
mov eax, dword [esi + 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov eax, dword [0x10181cfc]
xor eax, dword [0x10181d00]
mov ecx, 0xf075c417
xor edx, edx
div ecx
xor eax, 0xcd81e911
mov ecx, 0xdea3e8c6
xor edx, edx
div ecx
imul eax, eax, 0x7ded3b2a
imul eax, eax, 0xe7e3bf48
and eax, 0xe5286a84
imul eax, eax, 0xec331875
xor eax, 0x7ce22b69
sub eax, 0xad909aa
xor eax, 0xee3524d1
xor eax, 0x29f8a748
mov ecx, 0xa215dc59
xor edx, edx
div ecx
mov ecx, 0x829ee63b
xor edx, edx
div ecx
and eax, 0xb1248eb7
or eax, 0x95dabe1f
sub eax, 0x390cfd80
xor eax, 0x19d52d43
mov ecx, 0xbe6deabc
xor edx, edx
div ecx
xor eax, 0x26c798d7
mov ecx, 0xe405356a
xor edx, edx
div ecx
and eax, 0x1aec8150
xor eax, 0xd0367703
add eax, 0xd39ab9df
add eax, 0x3a4baed3
xor eax, 0x220361cd
add eax, 0xd94b4a10
sub eax, 0x6b0adfbb
add eax, 0x4ccc2e88
imul eax, eax, 0x49950d37
imul eax, eax, 0x2b32e8cd
add eax, 0x8d54b9da
add eax, 0x1f622b80
sub eax, 0x151a7a28
xor eax, 0x5c0ee238
add eax, 0x481ba048
or eax, 0x1dc8097f
add eax, 0x7c57cd4e
or eax, 0xb1e383e9
cmp eax, 0xc016184f
ja 0x100b02f7
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov eax, 0x5b7fd481
mov dword [esi + 0x1c], eax
push eax
mov eax, esp
push eax
mov edx, esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x14], ecx
mov esp, ecx
mov dword [eax], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov dword [esi + 0x18], edx
mov eax, dword [eax]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.101263b0
mov ecx, dword [esi + 0x14]
add esp, 8
call fcn.100b0350
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
fstp qword [esi + 0x50]
movsd xmm0, qword [esi + 0x50]
movsd qword [ecx], xmm0
cmp eax, 0x4ba9e960
je 0x100b02f7
jmp 0x100afc51
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
push eax
mov eax, esp
push eax
mov edx, esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov esp, ecx
mov dword [eax], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov dword [esi + 0x10], edx
mov eax, dword [eax]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.101263b0
mov ecx, dword [esi + 0xc]
add esp, 8
call fcn.100b0350
mov eax, dword [esi + 0x10]
fstp qword [esi + 0x48]
movsd xmm0, qword [esi + 0x48]
movsd qword [eax], xmm0
jmp 0x100afd47
jmp 0x100b003d
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
push eax
mov eax, esp
push eax
mov edx, esp
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 4], ecx
mov esp, ecx
mov dword [eax], ebx
mov dword [edx], edi
mov edx, dword [edx]
mov dword [esi + 8], edx
mov eax, dword [eax]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.101263b0
mov ecx, dword [esi + 4]
add esp, 8
call fcn.100b0350
mov eax, dword [esi + 8]
fstp qword [esi + 0x38]
movsd xmm0, qword [esi + 0x38]
movsd qword [eax], xmm0
jmp 0x100b0238