Function at 0x415800
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xchg edx, edx
sub esp, 0x48
push esi
nop
mov dword [esp - 0x20], 0xdb433a8
mov dword [esp - 4], 0x1f91d619
xor dword [esp - 4], 0x4ced0ba2
xor dword [esp - 4], 0x196bb519
xchg ebx, ebx
add dword [esp - 4], 0x2bb75886
xor dword [esp - 4], 0x5127805
xor dword [esp - 4], 0x7a215951
add dword [esp - 4], 0x126c817c
mov dword [esp - 0x28], edx
sub esp, 4
lea ecx, [ebp - 0x20]
call fcn.004892a0
lea eax, [ebp - 8]
mov dword [esp - 0x3c], esp
mov dword [ebp - 8], 0x1d9bef20
xor dword [ebp - 8], 0xc340218
xor dword [ebp - 8], 0x63b6a829
xchg esp, esp
xor dword [ebp - 8], 0x54efe11c
xor dword [ebp - 8], 0x372c3d53
add dword [ebp - 8], 0x3255c110
xchg edi, edi
sub dword [ebp - 8], 0x44305a5e
push eax
lea eax, [ebp - 0x48]
push eax
mov dword [esp - 0x40], 0x3676bfed
mov eax, dword [0x4c0b88]
xor eax, dword [0x4c0968]
call eax
test eax, eax
xchg ebp, ebp
je 0x41593e
or eax, 0xffffffff
lea esi, [ebp - 0x48]
mov esp, esp
cmp word [ebp - 0x48], 0
mov dword [ebp - 4], eax
je 0x41592e
nop
xchg edx, edx
mov dword [esp - 4], 0x3e2f724e
xor dword [esp - 4], 0xaa396c5
add dword [esp - 4], 0x443c152
xchg esi, esi
add dword [esp - 4], 0x2994d5ee
xor dword [esp - 4], 0x5d2b2d71
sub dword [esp - 4], 0x33a0ac3c
sub dword [esp - 4], 0xbadaa7c
mov esi, esi
sub esp, 4
push esi
lea ecx, [ebp - 4]
mov dword [esp - 0x40], 0x6d0a1cb
call fcn.00485de0
add esi, 2
cmp word [esi], 0
mov esi, esi
jne 0x4158cd
mov eax, dword [ebp - 4]
rol eax, 0x10
mov edi, edi
lea ecx, [ebp - 0x20]
push eax
call fcn.0048a4c0
xchg ebx, ebx
mov dword [ebp - 4], 0x6cb44c95
sub dword [ebp - 4], 0x2fabc24e
sub dword [ebp - 4], 0x2aaace72
add dword [ebp - 4], 0x472dc06f
mov dword [esp - 0x18], ebx
sub dword [ebp - 4], 0x5832d683
add dword [ebp - 4], 0x428b6b37
sub dword [ebp - 4], 0x3418f019
mov eax, dword [ebp - 4]
mov dword [esp - 0x40], 0x138cce5c
nop
sub esp, 4
mov dword [esp], 0x2da672d6
sub dword [esp], 0x26e7aea2
xchg ebp, ebp
add dword [esp], 0x460fa9f9
sub dword [esp], 0x805cc4a
xor dword [esp], 0x44c8a1eb
mov dword [ebp - 4], eax
mov dword [esp - 0x30], esp
mov dword [ebp - 0x14], 0x32caee57
sub dword [ebp - 0x14], 0x1cf1f8a9
add dword [ebp - 0x14], 0x45e9b0b
xchg edi, edi
xor dword [ebp - 0x14], 0x5db3c37f
xor dword [ebp - 0x14], 0x6a677d84
xor dword [ebp - 0x14], 0x2de32e46
mov dword [esp - 0xc], 0x1f5caa37
call fcn.00490c90
xor ecx, ecx
add esp, 4
mov edx, eax
mov dword [esp - 0x20], ebp
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x14], ecx
jbe 0x415a14
movsx ax, byte [ebp + ecx - 4]
xchg ebp, ebp
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, dword [ebp - 0x14]
mov dword [esp - 0x18], 0x7539a437
jb 0x4159fa
lea eax, [ebp - 0x18]
push eax
xchg edx, edx
nop
sub esp, 4
mov dword [esp], 0x55f74944
xor dword [esp], 0x3816840a
mov ebx, ebx
sub dword [esp], 0x1ac8d4d0
sub dword [esp], 0x1a4c7ee5
add dword [esp], 0x22294809
xor dword [esp], 0x12a19686
mov dword [esp - 0x30], ebp
xor dword [esp], 0x4854572f
nop
sub esp, 4
mov dword [esp - 0x3c], 0x7a73919a
mov dword [esp], 0x2d84ff07
xor dword [esp], 0x6b0c6cfb
add dword [esp], 0xbf3e8b1
xor dword [esp], 0x11cefa3b
mov esi, esi
add dword [esp], 0x236e8e71
add dword [esp], 0x153ea82a
xor dword [esp], 0x7c5fbd37
mov edi, edi
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x20]
mov dword [esp - 0x34], 0x764f9673
call fcn.0048a3b0
push eax
lea eax, [ebp - 0x10]
mov dword [esp - 0x30], 0x3ae177e1
push eax
call fcn.00484df0
add esp, 0xc
cmp dword [ebp - 0x24], 2
mov dword [esp - 0x40], edi
jbe 0x415adc
push dword [ebp - 0x28]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x40], 0x12a937c5
cmp dword [ebp - 0x14], 2
jbe 0x415af5
push dword [ebp - 0x18]
call fcn.00490c60
mov dword [esp - 0x44], 0x363e0e03
add esp, 4
nop
mov dword [esp - 4], 0x3593e8d
add dword [esp - 4], 0x6b781a11
mov esp, esp
xor dword [esp - 4], 0x7d9956f0
xor dword [esp - 4], 0x37288025
sub dword [esp - 4], 0x24608e43
mov dword [esp - 0x18], 0x2f4a0728
sub esp, 4
call fcn.00490c50
mov esi, eax
mov dword [esp - 0x14], 0x69d1a6ac
add esp, 4
test esi, esi
je 0x415c16
mov eax, dword [ebp - 0xc]
xchg edx, edx
cmp eax, 2
jbe 0x415bcd
mov ecx, 0x4e73fa83
xchg ecx, ecx
sub ecx, 0x4bf37e58
add ecx, 0x2c6cc35a
xor ecx, 0x6f68858c
xchg esp, esp
xor ecx, 0x44c6067e
add ecx, 0x1badb2fc
xor ecx, 0x20f16f71
xchg ebx, ebx
mul ecx
pushf
mov ecx, 0x66d82aaa
mov dword [esp - 0x2c], ecx
sub ecx, 0x261a8143
sub ecx, 0x3795f85d
add ecx, 0x292475c3
xor ecx, 0x2b19ead8
xchg edi, edi
xor ecx, 0xb13f3f2
add ecx, 0xedb9c018
popf
cmovb eax, ecx
mov dword [esp - 0x18], 0x42800aff
push eax
call fcn.00490c90
add esp, 4
xchg edx, edx
mov edx, eax
jmp 0x415bcf
xor edx, edx
mov dword [esi], edx
xor ecx, ecx
mov dword [esp - 0x34], esi
mov eax, dword [ebp - 0xc]
mov dword [esi + 4], eax
cmp eax, 2
ja 0x415bf3
xchg ebx, ebx
mov edx, esi
test eax, eax
je 0x415c18
mov dword [esp - 0x14], 0x58f1de8f
nop
cmp dword [ebp - 0xc], 2
lea eax, [ebp - 0x10]
cmova eax, dword [ebp - 0x10]
mov dword [esp - 0x2c], ecx
mov ax, word [eax + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov dword [esp - 0x44], edx
cmp ecx, dword [esi + 4]
jb 0x415bf3
jmp 0x415c18
xor esi, esi
cmp dword [ebp - 0xc], 2
mov ebp, ebp
mov dword [0x4c08f8], esi
pop esi
jbe 0x415c34
push dword [ebp - 0x10]
mov esp, esp
call fcn.00490c60
add esp, 4
mov esp, ebp
mov dword [esp - 0x38], 0x618cfd9
pop ebp
ret