Function at 0x413240
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [0x447834]
xor eax, esp
mov dword [esp + 0x44], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, 0x7fffffff
sub eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, 1
sub eax, dword [esp + 0x64]
mov dword [esp + 8], eax
mov eax, 0x1d1f5e80
nop
cmp eax, 0x1d1f5e7f
jle 0x4134b0
cmp eax, 0x4853788c
jle 0x4132d0
cmp eax, 0x5d790879
je 0x413783
cmp eax, 0x7ee12e35
je 0x413c22
cmp eax, 0x4853788d
jne 0x413290
jmp 0x413c3f
cmp eax, 0x1d1f5e80
je 0x413487
cmp eax, 0x3aa4778e
jne 0x413290
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x64]
mov dword [esp], eax
mov ebp, dword [eax]
mov esi, dword [esp + 0x18]
add esi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
push edi
push ebp
push ebx
call fcn.0041ced0
add esp, 0xc
mov ecx, dword [esp + 0x68]
movzx eax, byte [esp + 0x6c]
add ebx, edi
push ecx
push eax
push ebx
call fcn.0041d450
add esp, 0xc
add ebx, dword [esp + 0x68]
lea eax, [ebp + edi]
push esi
push eax
push ebx
call fcn.0041ced0
add esp, 0xc
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ecx, 0xc6da1ab6
inc esi
mov dword [esp + 0x3c], esi
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x900172a3
je 0x41338b
cmp ecx, 0xb4fb5a6a
je 0x413bfa
cmp ecx, 0xc6da1ab6
jne 0x413350
mov ecx, dword [esp + 0x3c]
mov eax, 0x900172a3
cmp ecx, 0xfff
mov ecx, 0xb4fb5a6a
cmova ecx, eax
cmp ecx, 0x900172a3
jne 0x413358
mov ecx, dword [ebp - 4]
add esi, 0x23
mov dword [esp + 0x40], ecx
mov ecx, 0xac1f43e6
sub ebp, dword [esp + 0x40]
cmp ebp, 3
seta byte [esp + 0x34]
cmp ebp, 0x24
setb byte [esp + 0x38]
cmp ecx, 0xac1f43e6
jne 0x413454
movzx ecx, byte [esp + 0x34]
movzx edx, byte [esp + 0x38]
mov edi, 0xd8f649f6
mov ch, cl
xor ch, 1
and cl, ch
mov dh, ch
and dh, cl
xor cl, ch
or cl, dh
mov dh, dl
xor dh, 1
mov ch, dh
and ch, dl
xor dh, ch
xor ch, 1
or ch, dl
xor ch, 1
or ch, dh
mov dh, cl
mov dl, ch
xor dh, 1
xor dl, 1
mov al, dh
mov bl, dh
and ch, dl
mov bh, dl
and al, dl
and bh, ch
xor ch, dl
xor dl, dh
and dh, cl
xor bl, dh
xor dh, 1
or ch, bh
or dl, al
or dh, cl
xor dl, 1
xor dh, 1
or dh, bl
mov ebx, 0x73576479
xor ch, dh
mov al, ch
and al, dl
xor dl, ch
or dl, al
mov eax, edx
xor al, 1
mov ecx, eax
and cl, dl
xor al, cl
test al, 1
cmovne ebx, edi
test cl, 1
mov ecx, ebx
cmovne ecx, edi
test dl, 1
cmovne ecx, ebx
cmp ecx, 0xac1f43e6
je 0x4133ba
cmp ecx, 0xd8f649f6
je 0x41346d
cmp ecx, 0x73576479
jne 0x4133ae
jmp 0x413c44
mov ebp, dword [esp + 0x40]
mov ecx, 0xb4fb5a6a
cmp ecx, 0x900172a3
jne 0x413358
jmp 0x41338b
mov eax, dword [esp + 0x1c]
mov ecx, 0x4853788d
cmp eax, dword [esp + 0x5c]
mov eax, 0x9c50a6cd
cmovb eax, ecx
cmp eax, 0x1d1f5e7f
jg 0x41329b
nop word [eax + eax]
cmp eax, 0xd50c7c0c
jg 0x4135d0
cmp eax, 0x8c8192cb
je 0x4137d5
cmp eax, 0x9c50a6cd
jne 0x413290
mov ecx, dword [0x448598]
mov eax, dword [0x44859c]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
mov edi, edx
not ecx
and edi, 0x47a78110
mov esi, ecx
and ecx, 0xd0884ae3
and esi, 0xb8587eee
or edi, esi
mov esi, edx
and edx, 0x2f77b51c
xor edi, 0x47a78110
and esi, 1
or ecx, edx
or esi, edi
mov edi, esi
and esi, 0xd0884ae3
not edi
mov ebx, edi
and ebx, 0x2f77b51c
or esi, ebx
xor ecx, esi
mov esi, 0xcacb01a
xor edi, ecx
test edi, ecx
sete dl
setne ch
cmp eax, 0xa
setl dh
cmp eax, 9
setg al
mov ah, al
xor ah, dh
and ah, al
and al, dl
mov bl, ah
xor bl, 1
mov bh, bl
and bh, ah
mov cl, bh
xor bh, ah
xor cl, 1
or cl, bl
xor cl, 1
or cl, bh
xor cl, ch
and ch, dh
or dh, dl
or al, ch
mov dl, dh
xor al, 1
xor dl, al
or al, dh
xor al, 1
or al, dl
mov edx, eax
mov ah, al
xor dl, 1
and dl, al
xor dl, 1
xor ah, dl
or dl, al
xor dl, 1
or dl, ah
mov ch, dl
or dl, cl
xor ch, cl
xor dl, 1
or dl, ch
mov eax, edx
xor al, ch
test al, 1
mov eax, 0xd50c7c0d
cmovne esi, eax
test dl, 1
mov eax, 0xcacb01a
cmovne eax, esi
test ch, 1
cmove eax, esi
cmp eax, 0x1d1f5e7f
jg 0x41329b
jmp 0x4134b0
cmp eax, 0xd50c7c0d
je 0x4137f7
cmp eax, 0xcacb01a
jne 0x413290
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
mov dword [esp], eax
mov eax, dword [eax + 0x14]
add edi, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 4]
mov esi, edi
mov ebx, edi
not esi
and ebx, 9
mov edx, esi
and edx, 0xb335ce8b
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
mov ecx, edi
and ecx, 0x4cca3174
or edx, ecx
mov ecx, esi
and esi, 6
xor edx, 0xb335ce84
and ecx, 0xfffffff0
or ebx, esi
mov esi, edi
or ecx, edx
xor ebx, 9
and esi, 0xfffffff0
mov edx, ecx
and ecx, 0x65124982
or esi, ebx
not edx
and edx, 0x9aedb67d
or ecx, edx
mov edx, ecx
xor ecx, 0x9aedb67d
xor edx, 0x20004180
mov ebx, ecx
and ecx, 0x4f538833
and edx, 0xb0ac77cc
or edx, ecx
mov ecx, esi
and esi, 0xb0ac77cc
not ecx
or ebx, ecx
and ecx, 0x4f538833
or esi, ecx
not ebx
xor esi, edx
mov ecx, ebx
mov edx, eax
and ecx, esi
xor esi, ebx
shr edx, 1
or esi, ecx
mov dword [esp + 0x3c], esi
mov esi, 0xb7745f77
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], ecx
cmp esi, 0xdc1be86c
jg 0x413740
jmp 0x4136d8
mov esi, 0xbf0ef74d
mov ebx, 0x7fffffff
nop word cs:[eax + eax]
nop dword [eax]
cmp esi, 0xdc1be86c
jg 0x413740
cmp esi, 0x95c54b0d
je 0x413711
cmp esi, 0xb7745f77
je 0x4136f5
cmp esi, 0xbf0ef74d
jne 0x4136d0
jmp 0x413a8c
cmp dword [esp + 0x3c], 0
mov esi, 0x95c54b0d
mov ebp, 0xdc1be86d
cmovs esi, ebp
cmp esi, 0xdc1be86c
jle 0x4136d8
jmp 0x413740
mov dword [esp + 0x40], edx
mov esi, 0x7fffffff
mov ebp, 0x18dd9667
sub esi, dword [esp + 0x40]
cmp esi, eax
mov esi, 0xb743c06
cmovb esi, ebp
cmp esi, 0xdc1be86c
jle 0x4136d8
nop word cs:[eax + eax]
nop
cmp esi, 0xdc1be86d
je 0x4136b9
cmp esi, 0xb743c06
je 0x413765
cmp esi, 0x18dd9667
jne 0x4136d0
jmp 0x4136b9
mov ebx, dword [esp + 0x40]
mov esi, 0xbf0ef74d
add ebx, eax
cmp ecx, ebx
cmovae ebx, ecx
cmp esi, 0xdc1be86c
jle 0x4136d8
jmp 0x413740
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x64]
add edi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
push ebp
push esi
push ebx
call fcn.0041ced0
add esp, 0xc
movzx eax, byte [esp + 0x6c]
mov ecx, dword [esp + 0x68]
add ebx, ebp
push ecx
push eax
push ebx
call fcn.0041d450
add esp, 0xc
add ebx, dword [esp + 0x68]
lea eax, [esi + ebp]
push edi
push eax
push ebx
call fcn.0041ced0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esi], eax
jmp 0x413c0d
cmp byte [esp + 0x33], 0
mov eax, 0x5d790879
mov ecx, 0x3aa4778e
cmovne eax, ecx
cmp eax, 0x1d1f5e7f
jg 0x41329b
jmp 0x4134b0
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x18]
add edi, dword [esp + 0x5c]
mov esi, edi
not esi
mov ecx, esi
mov eax, esi
mov ebp, esi
and ecx, edi
and ebp, 0x38771c12
and eax, ecx
xor ecx, esi
or ecx, eax
mov edx, ecx
mov ebx, ecx
not edx
xor ebx, 0xdca730b3
mov eax, edx
and edx, 0x7c3e68db
and eax, 0x2358cf4c
or ebx, eax
mov eax, edi
and eax, 0xc788e3ed
or eax, ebp
mov ebp, ebx
xor eax, 0x1b2fd35e
not ebp
or eax, esi
mov esi, eax
not esi
and esi, ebx
or ebx, eax
and eax, ebp
mov ebp, dword [esp + 0x10]
not ebx
or eax, esi
mov esi, ebx
and esi, eax
xor eax, ebx
or eax, esi
mov dword [esp], ebp
mov esi, eax
and eax, 0x180000a8
not esi
mov ebx, esi
or esi, 0xdca730bc
and ebx, 0xc4a73014
or eax, ebx
mov ebx, esi
and esi, 0x9f27f1d3
mov ebp, eax
xor eax, 0x8727f153
not ebx
xor ebp, 0x28
and eax, 0x9f27f1d3
and ebx, 0x20580e00
and ebp, 0x4080002c
or ebx, esi
lea esi, [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 4]
xor ebx, ebp
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x38]
mov esi, ecx
xor esi, 0xf
and esi, ecx
and ecx, 0x83c19724
or ecx, edx
mov edx, esi
xor ecx, 0x83c1972b
and edx, ecx
xor ecx, esi
or ecx, edx
mov esi, ecx
mov edx, ecx
xor esi, 0xa1edc38e
and edx, 0xa16c018e
and esi, ecx
not ecx
and ecx, 0x81c200
or edx, ecx
xor edx, 0xa16c018e
mov ecx, edx
and ecx, esi
xor esi, edx
mov edx, ebx
or esi, ecx
not edx
mov ecx, esi
and esi, 0xa1edc38e
not ecx
and ecx, 0x5e123c71
or esi, ecx
mov ecx, esi
and esi, edx
not ecx
or edx, ecx
and ecx, ebx
mov ebx, edx
or ecx, esi
mov esi, edx
not ebx
and esi, 0x792b5c29
and ebx, 0x86d4a3d6
or ebx, esi
mov esi, ecx
and ecx, 0x86d4a3d6
not esi
or edx, esi
and esi, 0x792b5c29
or ecx, esi
not edx
mov esi, 0xb7745f77
xor ecx, ebx
or edx, ecx
mov dword [esp + 0x3c], edx
mov edx, eax
mov ecx, dword [esp + 0x3c]
shr edx, 1
mov dword [esp + 0x34], ecx
cmp esi, 0xdc1be86c
jg 0x413a10
jmp 0x4139a8
mov esi, 0xbf0ef74d
mov ebx, 0x7fffffff
nop word [eax + eax]
cmp esi, 0xdc1be86c
jg 0x413a10
cmp esi, 0x95c54b0d
je 0x4139e1
cmp esi, 0xb7745f77
je 0x4139c5
cmp esi, 0xbf0ef74d
jne 0x4139a0
jmp 0x413a53
cmp dword [esp + 0x3c], 0
mov esi, 0x95c54b0d
mov ebp, 0xdc1be86d
cmovs esi, ebp
cmp esi, 0xdc1be86c
jle 0x4139a8
jmp 0x413a10
mov dword [esp + 0x40], edx
mov esi, 0x7fffffff
mov ebp, 0x18dd9667
sub esi, dword [esp + 0x40]
cmp esi, eax
mov esi, 0xb743c06
cmovb esi, ebp
cmp esi, 0xdc1be86c
jle 0x4139a8
nop word cs:[eax + eax]
nop
cmp esi, 0xdc1be86d
je 0x413990
cmp esi, 0xb743c06
je 0x413a35
cmp esi, 0x18dd9667
jne 0x4139a0
jmp 0x413990
mov ebx, dword [esp + 0x40]
mov esi, 0xbf0ef74d
add ebx, eax
cmp ecx, ebx
cmovae ebx, ecx
cmp esi, 0xdc1be86c
jle 0x4139a8
jmp 0x413a10
mov eax, dword [esp + 0x38]
lea eax, [ebx + 1]
push eax
call fcn.00408310
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [eax], edi
mov eax, dword [esp]
mov dword [eax + 0x14], ebx
mov eax, 0xcacb01a
cmp eax, 0x1d1f5e7f
jg 0x41329b
jmp 0x4134b0
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [ebx + 1]
push eax
call fcn.00408310
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [eax], edi
mov eax, dword [esp]
mov dword [eax + 0x14], ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp eax, 0xf
mov eax, dword [0x448598]
seta byte [esp + 0x33]
lea ecx, [eax - 1]
imul eax, ecx
mov edx, eax
mov ecx, eax
and eax, 0xefe4c32f
not edx
or ecx, 0x914e4407
mov esi, edx
mov edi, edx
and ecx, 0xd14f6c3f
and edx, 0x101b3cd0
and edi, 0x24801200
or esi, 0x64813a38
or eax, edx
or edi, ecx
mov ecx, esi
and esi, 0xd14f6c3f
not ecx
and ecx, 0xa3081c0
or ecx, esi
xor ecx, edi
mov edi, 0x8c8192cb
mov esi, ecx
and ecx, 0x64813a39
not esi
and esi, 0x9b7ec5c6
or ecx, esi
mov edx, ecx
and ecx, 0x88d839bc
not edx
mov esi, edx
and esi, 0x7727c643
or ecx, esi
mov esi, eax
xor eax, 0x10030440
xor esi, 0x88c0012c
and eax, 0x7727c643
and esi, 0x88d839bc
or esi, eax
mov eax, dword [0x44859c]
xor esi, ecx
xor edx, esi
test edx, esi
mov esi, 0xd50c7c0d
sete cl
setne dl
cmp eax, 0xa
setl ch
cmp eax, 9
setg al
mov ah, ch
and ch, dl
or ah, cl
and cl, al
xor al, dl
xor ah, 1
or ch, cl
or ah, al
mov al, ch
mov cl, ch
xor al, 1
and cl, al
mov edx, ecx
xor cl, ch
mov ch, ah
xor dl, 1
and ch, al
or dl, al
xor al, ah
xor dl, 1
or al, ch
or dl, cl
mov dh, al
mov ecx, edx
xor dl, 1
and cl, ah
xor ah, 1
and dl, ah
or dl, cl
xor dh, dl
test dh, 1
cmovne edi, esi
test al, al
mov eax, 0x8c8192cb
cmovne eax, edi
test dl, 1
cmove eax, edi
cmp eax, 0x1d1f5e7f
jg 0x41329b
jmp 0x4134b0
push esi
push ebp
call fcn.0041788e
add esp, 8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
mov dword [ecx], eax
mov eax, 0x7ee12e35
cmp eax, 0x1d1f5e7f
jg 0x41329b
jmp 0x4134b0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.004178c4
mov eax, dword [esp + 4]
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
call fcn.00408300
call fcn.00423509
int3