Function at 0x1004e110
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov eax, dword [0x1039f244]
mov ecx, dword [0x1039eb00]
push ebx
push esi
mov bl, byte [eax + 0x186e]
mov eax, dword [ecx]
push edi
mov byte [esp + 0xf], bl
mov eax, dword [eax + 0x68]
call eax
test al, al
jne 0x1004e156
test bl, bl
mov dword [0x1039eb60], 0xbf800000
mov dword [0x1039eb40], 0xbf800000
sete byte [0x1039eb64]
pop edi
pop esi
pop ebx
pop ecx
ret
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1039ea44]
mov ebx, dword [eax + ecx*4]
mov eax, dword [0x103a0e7c]
cmp eax, dword [ebx + 4]
jle 0x1004e22e
push 0x103a0e7c
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0e7c], 0xffffffff
jne 0x1004e22e
mov eax, dword [0x103a0eec]
cmp eax, dword [ebx + 4]
jle 0x1004e217
push 0x103a0eec
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0eec], 0xffffffff
jne 0x1004e217
mov eax, dword [0x1039ead8]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x1004e202
nop
mov edx, dword [esi + 0xc]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004e1c8
sub ecx, edi
lea edi, [ecx + 1]
mov ecx, 0x4fa38bcd
test edi, edi
je 0x1004e1fb
nop dword [eax]
movsx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0xf1546419
sub edi, 1
jne 0x1004e1e0
cmp ecx, 0x2fbf151d
je 0x1004e204
mov esi, dword [esi + 4]
test esi, esi
jne 0x1004e1c0
xor esi, esi
push 0x103a0eec
mov dword [0x103a0e80], esi
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0e80]
push 0x103a0e7c
mov dword [0x103a0e8c], eax
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0e98]
cmp eax, dword [ebx + 4]
jle 0x1004e2f3
push 0x103a0e98
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0e98], 0xffffffff
jne 0x1004e2f3
mov eax, dword [0x103a0ed8]
cmp eax, dword [ebx + 4]
jle 0x1004e2dc
push 0x103a0ed8
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0ed8], 0xffffffff
jne 0x1004e2dc
mov eax, dword [0x1039ead8]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x1004e2c7
mov edx, dword [esi + 0xc]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004e290
sub ecx, edi
lea edi, [ecx + 1]
mov ecx, 0x4fa38bcd
test edi, edi
je 0x1004e2c0
movsx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0xf1546419
sub edi, 1
jne 0x1004e2a5
cmp ecx, 0xdcba9bf
je 0x1004e2c9
mov esi, dword [esi + 4]
test esi, esi
jne 0x1004e288
xor esi, esi
push 0x103a0ed8
mov dword [0x103a0e78], esi
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0e78]
push 0x103a0e98
mov dword [0x103a0e94], eax
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0ee4]
cmp eax, dword [ebx + 4]
jle 0x1004e3be
push 0x103a0ee4
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0ee4], 0xffffffff
jne 0x1004e3be
mov eax, dword [0x103a0eb8]
cmp eax, dword [ebx + 4]
jle 0x1004e3a7
push 0x103a0eb8
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0eb8], 0xffffffff
jne 0x1004e3a7
mov eax, dword [0x1039ead8]
mov esi, dword [eax + 0x30]
test esi, esi
je 0x1004e392
nop dword [eax]
mov edx, dword [esi + 0xc]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004e358
sub ecx, edi
lea edi, [ecx + 1]
mov ecx, 0x4fa38bcd
test edi, edi
je 0x1004e38b
nop dword [eax]
movsx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0xf1546419
sub edi, 1
jne 0x1004e370
cmp ecx, 0xb7830589
je 0x1004e394
mov esi, dword [esi + 4]
test esi, esi
jne 0x1004e350
xor esi, esi
push 0x103a0eb8
mov dword [0x103a0ef8], esi
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0ef8]
push 0x103a0ee4
mov dword [0x103a0e6c], eax
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0ec8]
cmp eax, dword [ebx + 4]
jle 0x1004e483
push 0x103a0ec8
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0ec8], 0xffffffff
jne 0x1004e483
mov eax, dword [0x103a0ea4]
cmp eax, dword [ebx + 4]
jle 0x1004e46c
push 0x103a0ea4
call fcn.10151b0d
add esp, 4
cmp dword [0x103a0ea4], 0xffffffff
jne 0x1004e46c
mov eax, dword [0x1039ead8]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x1004e457
mov edx, dword [edi + 0xc]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004e420
sub ecx, esi
lea esi, [ecx + 1]
mov ecx, 0x4fa38bcd
test esi, esi
je 0x1004e450
movsx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0xf1546419
sub esi, 1
jne 0x1004e435
cmp ecx, 0xcdf77b18
je 0x1004e459
mov edi, dword [edi + 4]
test edi, edi
jne 0x1004e418
xor edi, edi
push 0x103a0ea4
mov dword [0x103a0ed0], edi
call fcn.10151ac3
add esp, 4
mov eax, dword [0x103a0ed0]
push 0x103a0ec8
mov dword [0x103a0ea8], eax
call fcn.10151ac3
add esp, 4
mov bl, byte [esp + 0xf]
cmp byte [0x1039eb64], bl
je 0x1004e4e2
mov ecx, dword [0x103a0e8c]
mov eax, dword [0x103a0e94]
mov dword [ecx + 0x50], 0
mov dword [eax + 0x50], 0
mov edx, dword [ecx]
movzx eax, bl
push eax
mov eax, dword [edx + 0x40]
call eax
test bl, bl
je 0x1004e4c1
movss xmm0, dword [0x10233078]
jmp 0x1004e4c9
movss xmm0, dword [0x102330dc]
mov ecx, dword [0x103a0e94]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
mov byte [0x1039eb64], bl
mov ecx, dword [0x1039f244]
movss xmm0, dword [0x1039eb60]
movd xmm1, dword [ecx + 0x186f]
cvtdq2ps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1004e53c
mov ecx, dword [0x103a0e6c]
mov dword [ecx + 0x50], 0
mov eax, dword [0x1039f244]
mov edx, dword [ecx]
push dword [eax + 0x186f]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [0x1039f244]
movd xmm0, dword [ecx + 0x186f]
cvtdq2ps xmm0, xmm0
movss dword [0x1039eb60], xmm0
movd xmm1, dword [ecx + 0x1873]
movss xmm0, dword [0x1039eb40]
cvtdq2ps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1004e58f
mov ecx, dword [0x103a0ea8]
mov dword [ecx + 0x50], 0
mov eax, dword [0x1039f244]
mov edx, dword [ecx]
push dword [eax + 0x1873]
mov eax, dword [edx + 0x40]
call eax
mov eax, dword [0x1039f244]
movd xmm0, dword [eax + 0x1873]
cvtdq2ps xmm0, xmm0
movss dword [0x1039eb40], xmm0
pop edi
pop esi
pop ebx
pop ecx
ret