Function at 0x417a00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov dword [esp - 0x38], 0x5e77e794
sub esp, 0x38
nop
mov dword [esp - 4], 0x6e01adea
mov dword [esp - 0x3c], esi
add dword [esp - 4], 0x6737e65
xor dword [esp - 4], 0x58f8f0b9
xor dword [esp - 4], 0x25f7e961
xchg ebp, ebp
sub dword [esp - 4], 0x97a3596
sub esp, 4
push dword [0x4c08f8]
lea eax, [ebp - 8]
xchg ebx, ebx
nop
mov dword [esp - 4], 0x5585c066
sub dword [esp - 4], 0x41e36c1e
mov dword [esp - 0x28], 0x2f03cf87
add dword [esp - 4], 0xcd4eb36
xor dword [esp - 4], 0x6d27cb48
xor dword [esp - 4], 0x60ab11f3
mov dword [esp - 0x18], 0x25f84897
xor dword [esp - 4], 0x2dfbe599
sub esp, 4
push eax
call fcn.004871a0
mov dword [esp - 0x10], ecx
add esp, 4
push eax
lea eax, [ebp - 0x10]
mov dword [esp - 0x24], esi
push eax
call fcn.00485310
add esp, 0xc
xchg ebx, ebx
push eax
lea eax, [ebp - 0x20]
push eax
mov esi, esi
call fcn.00484df0
add esp, 0xc
lea ecx, [ebp - 0x38]
xchg esi, esi
push eax
call fcn.00487830
cmp dword [ebp - 0x1c], 2
jbe 0x417ae2
mov dword [esp - 0x44], edi
push dword [ebp - 0x20]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x30], edx
cmp dword [ebp - 0xc], 2
jbe 0x417af5
push dword [ebp - 0x10]
call fcn.00490c60
mov ebp, ebp
add esp, 4
cmp dword [ebp - 4], 2
jbe 0x417b08
push dword [ebp - 8]
mov ecx, ecx
call fcn.00490c60
add esp, 4
push ebx
mov dword [esp - 0x30], esi
push esi
push edi
lea ecx, [ebp - 0x38]
call fcn.00487c90
xchg edi, edi
test al, al
je 0x417ffe
nop
xchg ecx, ecx
mov dword [esp - 4], 0xf360f85
add dword [esp - 4], 0x38fd8611
add dword [esp - 4], 0x4b39ae3
xchg ebx, ebx
xor dword [esp - 4], 0x36b0181c
sub dword [esp - 4], 0x1a6dc1b
sub dword [esp - 4], 0x78b04c4a
mov dword [esp - 0x40], edx
sub esp, 4
sub esp, 4
mov dword [esp], 0x802cb77
xchg esp, esp
xor dword [esp], 0x4f4b93ec
sub dword [esp], 0x33940405
add dword [esp], 0x3707cad0
mov dword [esp - 0xc], 0x53cac830
add dword [esp], 0x760d1c6a
nop
mov dword [esp - 4], 0x9aaba81
mov dword [esp - 0x3c], ecx
xor dword [esp - 4], 0x10eb0f0b
xor dword [esp - 4], 0x4fb6bd1
add dword [esp - 4], 0x10d9fca3
xchg esi, esi
sub dword [esp - 4], 0x18ebb03b
sub dword [esp - 4], 0xf6bfeb7
add dword [esp - 4], 0xb2c2cb34
sub esp, 4
mov dword [esp - 0x28], 0x6d663f09
lea ecx, [ebp - 0x38]
call fcn.00488750
mov ecx, eax
mov dword [esp - 0x3c], 0x6782e6ff
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x417ffe
mov dword [esp - 0x24], edx
mov ebx, ecx
lea edx, [ebx + 1]
jmp 0x417c02
mov al, byte [ebx]
inc ebx
mov dword [esp - 0x20], edx
test al, al
jne 0x417c02
mov eax, dword [0x4c0b78]
mov dword [esp - 0x18], 0x7f20db72
sub ebx, edx
xor eax, dword [0x4c0968]
nop
xchg edx, edx
mov dword [esp - 4], 0x1494960c
add dword [esp - 4], 0x1432ad57
sub dword [esp - 4], 0x13163a95
xchg ecx, ecx
add dword [esp - 4], 0x56e99c80
xor dword [esp - 4], 0x6c9aa54e
sub esp, 4
nop
mov dword [esp - 0x14], ebx
sub esp, 4
mov dword [esp], 0x4549e9a0
sub dword [esp], 0xc9a2d9b
sub dword [esp], 0x8aca514
mov ebx, ebx
xor dword [esp], 0x32f55acd
sub dword [esp], 0x2cfe8b
xor dword [esp], 0x1d1b9b05
xor dword [esp], 0x1fd2d6b4
xchg edx, edx
push ebx
push ecx
nop
sub esp, 4
mov ecx, ecx
mov dword [esp], 0x3c38a91c
add dword [esp], 0x1b4737d5
xor dword [esp], 0x4ef8aa63
add dword [esp], 0xc158b45
mov dword [esp - 0x40], edi
xor dword [esp], 0x396a5da3
xor dword [esp], 0x1cf68874
sub esp, 4
mov dword [esp], 0x38f178d6
xchg esp, esp
add dword [esp], 0x3754b26b
xor dword [esp], 0x19f3a46
sub dword [esp], 0xef3f5f
mov dword [esp - 0x44], edx
xor dword [esp], 0x5e3afb52
add dword [esp], 0x45f2dca7
sub dword [esp], 0x74c509b8
call eax
xchg ebx, ebx
mov edi, eax
mov ecx, 0x5588e322
add ecx, 0x22546f17
mov dword [esp - 0x18], ecx
xor ecx, 0x5af19b8d
xor ecx, 0x463b6550
sub ecx, 0x6b17ace2
mov dword [esp - 0x3c], esi
lea esi, [edi + 1]
mov eax, esi
mul ecx
pushf
xchg edi, edi
mov ecx, 0x393298f3
add ecx, 0xa651193
xor ecx, 0x5c3ab94f
xchg ecx, ecx
xor ecx, 0x75aa8ca7
sub ecx, 0x224f403d
sub ecx, 0x23cc8625
xchg edx, edx
add ecx, 0xdc1426f3
popf
cmovb eax, ecx
mov ecx, ecx
push eax
call fcn.00490c90
mov ecx, dword [0x4c0b78]
add esp, 4
mov dword [esp - 0x10], ebx
xor ecx, dword [0x4c0968]
mov dword [ebp - 4], eax
push esi
mov edi, edi
push eax
push ebx
push dword [ebp - 0xc]
mov dword [esp - 0x20], 0x442a0e3c
nop
mov dword [esp - 4], 0x51d501b2
sub dword [esp - 4], 0x420b528d
mov esp, esp
add dword [esp - 4], 0x521554ad
xor dword [esp - 4], 0x2b1b74c5
sub dword [esp - 4], 0x4ac47717
sub esp, 4
mov dword [esp - 0x28], edx
sub esp, 4
mov dword [esp], 0x5e73eb49
sub dword [esp], 0x5bdb1351
add dword [esp], 0x6252c9f5
mov dword [esp - 0xc], 0x7db09e1
sub dword [esp], 0x423eedb2
xor dword [esp], 0x22ac49d2
call ecx
mov ebp, ebp
mov ecx, dword [ebp - 4]
xor eax, eax
mov esi, ecx
mov dword [esp - 0x14], edi
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov word [ecx + edi*2], ax
mov dword [esp - 0x30], 0x3ca53ab7
lea edx, [esi + 2]
mov ax, word [esi]
add esi, 2
mov dword [esp - 0x24], ebp
test ax, ax
jne 0x417e18
sub esi, edx
lea edx, [ebp - 0x20]
xchg esp, esp
sar esi, 1
mov dword [ebp - 0x1c], esi
cmp esi, 2
jbe 0x417eac
mov dword [esp - 0x10], 0x43910a50
mov ecx, 0x2914b2b6
sub ecx, 0xf2d5c07
add ecx, 0x1222056f
mov edi, edi
add ecx, 0x27a80a7c
xor ecx, 0x5e7f00d3
sub ecx, 0xdce6647
mov eax, esi
mov dword [esp - 0x3c], ecx
mul ecx
pushf
mov ecx, 0x5eeff9fb
sub ecx, 0xf56d8e7
xchg ebp, ebp
add ecx, 0x24e8827c
xor ecx, 0x5d7635ea
add ecx, 0xd6086985
mov edi, edi
popf
cmovb eax, ecx
push eax
mov esp, esp
call fcn.00490c90
mov ecx, dword [ebp - 4]
mov ebx, eax
add esp, 4
mov esi, esi
mov dword [ebp - 0x20], ebx
mov edx, ebx
xor edi, edi
test esi, esi
mov dword [esp - 0x40], 0x5d8f677e
je 0x417f16
mov ebx, ecx
sub ebx, edx
jmp 0x417ec3
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov dword [esp - 0x3c], esi
mov eax, 0x38aa0871
xor eax, 0x42244051
xor eax, 0xd0af77a
mov edi, edi
sub eax, 0x73915e1a
xor eax, 0x225813ce
xor eax, 0x5a01367f
mov ebp, ebp
shl ecx, 3
inc edi
sar eax, cl
cbw
xchg esp, esp
xor ax, word [edx + ebx - 2]
mov word [edx - 2], ax
mov esi, dword [ebp - 0x1c]
mov dword [esp - 0x38], 0x388e4aad
cmp edi, esi
jb 0x417ec3
mov ebx, dword [ebp - 0x20]
push dword [ebp - 4]
mov dword [esp - 0x30], edi
call fcn.00490c60
push dword [ebp - 0xc]
call fcn.00490c60
mov esp, esp
add esp, 8
cmp esi, 0x10
jne 0x417fe4
xchg esp, esp
nop
sub esp, 4
mov dword [esp], 0x4e8401ff
sub dword [esp], 0xf8e8824
mov dword [esp - 0x2c], 0x28ad09d6
sub dword [esp], 0x2af62b9f
add dword [esp], 0x453b217
sub dword [esp], 0x18530033
call fcn.00490c90
xchg esi, esi
mov esi, dword [ebp + 8]
mov ecx, eax
mov edi, ebx
mov dword [esp - 0x40], 0x2b853674
add esp, 4
xor edx, edx
sub edi, ecx
mov dword [esi], ecx
xchg edi, edi
mov dword [esi + 4], 0x262bdcd4
add dword [esi + 4], 0x4815742d
sub dword [esi + 4], 0x1b2fae4e
sub dword [esi + 4], 0x6135f97
mov dword [esp - 0x18], ebp
xor dword [esi + 4], 0x6287b571
add dword [esi + 4], 0x8ed069c
sub dword [esi + 4], 0x3766fcf9
xchg ecx, ecx
mov edi, edi
mov ax, word [ecx + edi]
lea ecx, [ecx + 2]
mov dword [esp - 0x18], 0x2cb96c3e
mov word [ecx - 2], ax
inc edx
cmp edx, dword [esi + 4]
mov ebx, ebx
jb 0x417fc3
push ebx
jmp 0x4184c1
cmp esi, 2
jbe 0x417ffe
mov dword [esp - 0x24], 0x29099dca
push ebx
call fcn.00490c60
add esp, 4
mov dword [esp - 0x18], esp
nop
sub esp, 4
mov dword [esp], 0x5d76d33d
sub dword [esp], 0x36f738a6
xchg ebp, ebp
sub dword [esp], 0xa1101bd
add dword [esp], 0x1e354900
sub dword [esp], 0x357e1630
mov edi, edi
sub dword [esp], 0x525cb9a
lea eax, [ebp - 0x18]
mov ecx, 0x4c15b8
push eax
xchg edx, edx
call fcn.00489d20
mov eax, dword [ebp - 0x14]
lea ebx, [ebp - 0x18]
xchg edx, edx
cmp eax, 2
mov dword [ebp - 4], eax
pushf
xchg esi, esi
mov ecx, 0x3f9cea25
sub ecx, 0x3499f90
add ecx, 0x23e28a96
sub ecx, 0x1aea9dff
xchg edx, edx
sub ecx, 0x454b372a
popf
cmova ebx, dword [ebp - 0x18]
inc eax
mov dword [esp - 0x24], 0x3e07c008
mul ecx
pushf
mov ecx, 0x257e9e7
add ecx, 0x5d62ffdf
mov dword [esp - 0x44], 0xabb35af
xor ecx, 0x1899804b
add ecx, 0x2d5ea89e
sub ecx, 0x3c9c9e0e
xchg ebx, ebx
xor ecx, 0xc81a8be2
popf
cmovb eax, ecx
push eax
mov dword [esp - 0x34], esp
call fcn.00490c90
mov esi, eax
add esp, 4
mov eax, dword [ebp - 4]
mov dword [esp - 0x34], 0x46505e2a
xor edi, edi
mov dword [ebp - 0xc], esi
test eax, eax
xchg edi, edi
je 0x418135
mov edx, esi
sub ebx, esi
mov esi, eax
xchg ebx, ebx
mov ecx, edi
lea edx, [edx + 2]
and ecx, 3
mov eax, 0x14e94601
xchg edx, edx
add eax, 0x1a8260c4
sub eax, 0x1b7552f4
add eax, 0x3873dcc5
add eax, 0x2a773443
xchg ebx, ebx
xor eax, 0x73df8a8e
xor eax, 0x7e94aaa6
shl ecx, 3
inc edi
xchg edx, edx
sar eax, cl
cbw
xor ax, word [edx + ebx - 2]
mov esi, esi
mov word [edx - 2], ax
cmp edi, esi
jb 0x4180e3
mov dword [esp - 0x3c], ebx
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
xor ecx, ecx
push ecx
mov dword [esp - 0x44], 0x2132044a
push ecx
push ecx
push ecx
mov dword [esp - 0x24], edi
mov word [esi + eax*2], cx
mov eax, dword [ebp - 0x14]
push eax
mov dword [esp - 0x20], 0x75891ac6
push esi
mov dword [ebp - 4], eax
mov eax, dword [0x4c0b80]
xor eax, dword [0x4c0968]
mov ebx, ebx
push ecx
sub esp, 4
mov dword [esp], 0x2125e79a
sub dword [esp], 0x2faf58a
xchg ebx, ebx
xor dword [esp], 0x4db54575
xor dword [esp], 0xd186770
sub dword [esp], 0x5e86d22c
mov esi, esi
call eax
mov ebx, eax
lea edi, [ebx + 1]
push edi
mov dword [esp - 0x3c], esi
call fcn.00490c90
mov ecx, dword [0x4c0b80]
add esp, 4
xchg edx, edx
xor ecx, dword [0x4c0968]
mov dword [ebp - 0xc], eax
nop
xchg edx, edx
mov dword [esp - 4], 0x2af12ed4
sub dword [esp - 4], 0x281c5d7d
xor dword [esp - 4], 0x1e6aba2
add dword [esp - 4], 0x7291b276
xchg edi, edi
xor dword [esp - 4], 0xf8fc056
sub dword [esp - 4], 0x7a4bed3d
sub esp, 4
nop
mov dword [esp - 0x18], ecx
sub esp, 4
mov dword [esp], 0x23654c5d
add dword [esp], 0x426bf149
mov dword [esp - 0x3c], 0x20a468fe
sub dword [esp], 0x618bb123
add dword [esp], 0x3eb1022c
sub dword [esp], 0x24a0fc85
mov edx, edx
xor dword [esp], 0x1e55922a
push edi
mov edi, eax
push edi
mov edx, edx
push dword [ebp - 4]
push esi
nop
mov dword [esp - 0x40], 0x2eb71d9e
mov dword [esp - 4], 0x6b494a51
xor dword [esp - 4], 0x63528e33
xor dword [esp - 4], 0xbe4532c
mov dword [esp - 0x10], esp
add dword [esp - 4], 0x448fb22a
xor dword [esp - 4], 0x488f4978
sub esp, 4
mov ebx, ebx
sub esp, 4
mov dword [esp], 0x1c2d018e
sub dword [esp], 0x18e18681
xor dword [esp], 0x372a3d00
mov edi, edi
add dword [esp], 0x48413845
sub dword [esp], 0x7ca18069
call ecx
push esi
xchg ebx, ebx
mov byte [edi + ebx], 0x37
sub byte [edi + ebx], 0x26
add byte [edi + ebx], 0x5a
xchg edx, edx
sub byte [edi + ebx], 0x2f
sub byte [edi + ebx], 0x13
sub byte [edi + ebx], 0x29
mov dword [esp - 0x14], edi
call fcn.00490c60
add esp, 4
lea ecx, [ebp - 0x38]
push edi
mov ecx, ecx
nop
mov dword [esp - 4], 0x7e077c17
sub dword [esp - 4], 0x7c8c24dc
add dword [esp - 4], 0x5e6062a2
mov ebp, ebp
sub dword [esp - 4], 0x2da0478d
add dword [esp - 4], 0x3bbd3df8
add dword [esp - 4], 0x49ead99
mov dword [esp - 0x10], ebp
xor dword [esp - 4], 0xb25d6631
sub esp, 4
sub esp, 4
mov dword [esp], 0x46ab0d11
mov ebp, ebp
add dword [esp], 0x256288e6
sub dword [esp], 0x8c9e14
sub dword [esp], 0x642cb67b
add dword [esp], 0xb1abb5d8
mov dword [esp - 0x18], 0x7c5dfd07
call fcn.00488e80
push edi
call fcn.00490c60
add esp, 4
xchg esi, esi
lea ecx, [ebp - 0x38]
call fcn.00488880
test al, al
mov dword [esp - 0x38], ebp
je 0x41844a
mov ecx, dword [ebp - 0x14]
cmp ecx, 2
mov dword [esp - 0x20], esi
jbe 0x4183f8
mov eax, ecx
mov ecx, 0x33ca9572
mov dword [esp - 0x20], 0xef5ff28
sub ecx, 0x1b2027af
add ecx, 0x332d113c
add ecx, 0x9d07f5c
sub ecx, 0x47e2db6c
mov dword [esp - 0x30], 0x3d0a5f73
add ecx, 0x2520cbe3
sub ecx, 0x32e5eed0
mul ecx
mov ecx, ecx
pushf
mov ecx, 0x8c63a99
xor ecx, 0x53b2a4d9
mov dword [esp - 0x14], 0x12d336e1
sub ecx, 0x42ccda37
sub ecx, 0x584e55f
add ecx, 0x6c318fd3
xor ecx, 0x80ab9182
mov ebp, ebp
popf
cmovb eax, ecx
push eax
call fcn.00490c90
xchg edx, edx
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edi, eax
mov dword [esp - 0x24], esp
jmp 0x4183fa
xor edi, edi
mov esi, dword [ebp + 8]
cmp ecx, 2
mov dword [esi], edi
mov dword [esp - 0x18], 0x3b37109d
cmovbe edi, esi
xor edx, edx
mov dword [esi + 4], ecx
test ecx, ecx
xchg edx, edx
je 0x418445
cmp ecx, 2
lea eax, [ebp - 0x18]
mov dword [esp - 0x24], 0x410c87cf
cmova eax, dword [ebp - 0x18]
mov ax, word [eax + edx*2]
mov word [edi + edx*2], ax
mov esi, esi
inc edx
mov ecx, dword [ebp - 0x14]
cmp edx, dword [esi + 4]
mov dword [esp - 0x2c], 0x10f9258a
jb 0x418418
cmp ecx, 2
jmp 0x4184bc
mov esi, dword [ebp + 8]
cmp dword [ebp - 0x14], 2
mov dword [esp - 0x2c], 0x19a5af9d
pushf
mov dword [esi], 0x6e282f69
sub dword [esi], 0x4dcdf960
mov dword [esp - 0x28], 0x6c21631a
sub dword [esi], 0x19c931d8
xor dword [esi], 0x351a7ca9
xor dword [esi], 0x338b7898
mov dword [esp - 0x18], 0x75bb8985
popf
pushf
mov dword [esi + 4], 0x59080ff9
mov dword [esp - 0x44], 0x4d0ee133
add dword [esi + 4], 0x206ea778
sub dword [esi + 4], 0x5f47cc7a
xor dword [esi + 4], 0x121193cb
sub dword [esi + 4], 0x83f793c
mov ecx, ecx
popf
jbe 0x4184d1
push dword [ebp - 0x18]
call fcn.00490c60
mov dword [esp - 0x34], 0x2c923d53
add esp, 4
lea ecx, [ebp - 0x38]
call fcn.00487a70
xchg edi, edi
pop edi
mov eax, esi
pop esi
mov esp, esp
pop ebx
mov esp, ebp
pop ebp
mov dword [esp - 0x40], ebx
ret