Function at 0x1003f440
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1004f1b0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x1027ceb4]
and eax, dword [0x1027ceb8]
add eax, 0x7d28d228
mov edx, eax
and edx, 0xb6fbe7a5
mov ecx, eax
or ecx, 0xb6fbe7a5
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x4904185a
or eax, 0x4904185a
imul eax, edx
add eax, ecx
sub eax, 0x35994bb
add eax, 0x97f002a3
add eax, 0x35994bb
cmp eax, 0xe50359bb
ja 0x1003f7f6
mov edi, dword [ebp - 0x24]
mov eax, dword [0x1027cebc]
mov ecx, dword [0x1027cec0]
xor edx, edx
div ecx
mov edx, dword [ebp - 0x20]
and eax, 0x80048c04
or eax, 0x62fb63eb
xor eax, 0x91efe242
push eax
mov esi, esp
mov dword [ebp - 0x38], esi
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
sub esp, 0x34
mov ebx, esp
mov dword [ebp - 0x30], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x2c], ebx
mov dword [esi], edi
mov dword [ecx], edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x25], cl
cmp eax, 0x1d0347e5
jb 0x1003f4cd
mov al, byte [ebp - 0x25]
test al, 1
jne 0x1003f533
jmp 0x1003f756
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x1003f756
mov eax, dword [0x1027cec4]
mov esi, dword [0x1027cec8]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
imul eax, eax, 0x4a71d2ac
and eax, 0x61ef5559
add eax, 0xe0c5714c
mov dword [ebp - 0x10], 0xffffffff
cmp eax, 0x1cd003dc
jbe 0x1003f80b
mov eax, dword [0x1027cecc]
xor edx, edx
div dword [0x1027ced0]
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xd7761d40
and ecx, 0x2889e2bf
or eax, ecx
xor eax, 0xffffffff
or eax, 0x98b40574
xor eax, 0xffffffff
sub eax, 0x62382301
sub eax, 0x3ceebae4
add eax, 0x62382301
mov dword [ebp - 0x40], eax
sub esp, 4
mov dword [esp], 0x18
call fcn.100b13ee
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x44], edx
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.1003fe20
mov ecx, eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
cmp eax, 0x2b5f558b
ja 0x1003f80b
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10040350
jmp 0x1003f622
mov eax, dword [0x1027ced4]
xor edx, edx
div dword [0x1027ced8]
sub eax, 0xf25c604a
mov ecx, 0xd2f639cd
xor edx, edx
div ecx
sub eax, 0x77e230b4
cmp eax, 0x28be7c12
jb 0x1003f832
mov ecx, dword [0x1027cedc]
imul ecx, dword [0x1027cee0]
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x53653fb9
or ecx, 0xac9ac046
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
imul eax, eax, 0xa69267c3
imul eax, eax, 0x7cf6e86
cmp eax, 0x708e7530
je 0x1003f64d
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], 0
call fcn.10040580
jmp 0x1003f6ae
mov edx, dword [0x1027cee4]
mov ecx, dword [0x1027cee8]
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0xd06ffad1
xor ecx, 0xffffffff
or eax, 0xd06ffad1
and eax, ecx
imul ecx, eax, 0x402bbc00
mov eax, ecx
xor eax, 0xa72d5e9f
and eax, ecx
cmp eax, 0x9c3cdf4d
ja 0x1003f837
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [0x1027ceec]
mov edi, dword [0x1027cef0]
xor ebx, 0xffffffff
xor edi, 0xffffffff
and ebx, edi
mov edi, ebx
or edi, 0xc8d678fe
and ebx, 0xc8d678fe
xor ebx, 0xffffffff
and edi, ebx
and edi, 0x9a85c78f
and edi, 0xc4ee09e
mov dword [ebp - 0x48], edi
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040700
mov eax, dword [ebp - 0x48]
cmp eax, 0x6c859156
ja 0x1003f6f5
jmp 0x1003f756
mov eax, dword [0x1027cf14]
xor eax, dword [0x1027cf18]
add eax, 0xfc38f1a6
mov ecx, 0x198a5d7a
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xd7c4c742
mov ecx, eax
and ecx, 0x283b38bd
imul ecx, edx
mov edx, eax
and edx, 0xd7c4c742
or eax, 0xd7c4c742
imul eax, edx
add eax, ecx
cmp eax, 0x17947fe2
jb 0x1003f854
mov ecx, dword [0x1027cf1c]
mov eax, dword [0x1027cf20]
xor eax, 0xffffffff
add ecx, eax
add ecx, 1
xor ecx, 0x9af3dfeb
mov eax, ecx
and eax, 0x31fa970e
or ecx, 0x31fa970e
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
xor eax, 0x32f15cae
cmp eax, 0x6836d0c9
je 0x1003f854
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x1003f4cd
sub esp, 4
mov dword [esp], 0x18
call fcn.100b13ee
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov eax, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.1003fe20
jmp 0x1003f58c
jmp 0x1003f64d
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040700
jmp 0x1003f6f5
jmp 0x1003f7a2