Function at 0x40a7c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov esi, esp
mov eax, dword [0x44214c]
test eax, eax
jne 0x40a995
movzx eax, byte [0x439440]
xor al, 0xcf
mov byte [0x439460], al
movzx eax, byte [0x439441]
xor al, 0xfe
mov byte [0x439461], al
movzx eax, byte [0x439442]
xor al, 3
mov byte [0x439462], al
movzx eax, byte [0x439443]
xor al, 0x6c
mov byte [0x439463], al
movzx eax, byte [0x439444]
xor al, 7
mov byte [0x439464], al
movzx eax, byte [0x439445]
mov ecx, eax
add cl, al
and cl, 0xcc
sub al, cl
add al, 0xe6
mov byte [0x439465], al
movzx eax, byte [0x439446]
xor al, 0xa3
mov byte [0x439466], al
movzx eax, byte [0x439447]
mov ecx, eax
add cl, al
and cl, 0xb2
sub al, cl
add al, 0x59
mov byte [0x439467], al
movzx eax, byte [0x439448]
xor al, 0x96
mov byte [0x439468], al
movzx eax, byte [0x439449]
xor al, 0xf3
mov byte [0x439469], al
movzx eax, byte [0x43944a]
xor al, 0xb2
mov byte [0x43946a], al
movzx eax, byte [0x43944b]
xor al, 0x6f
mov byte [0x43946b], al
movzx eax, byte [0x43944c]
xor al, 0x47
mov byte [0x43946c], al
movzx eax, byte [0x43944d]
xor al, 0x2c
mov byte [0x43946d], al
movzx eax, byte [0x43944e]
xor al, 0xd8
mov byte [0x43946e], al
movzx eax, byte [0x43944f]
xor al, 0x1e
mov byte [0x43946f], al
movzx eax, byte [0x439450]
xor al, 0x90
mov byte [0x439470], al
movzx eax, byte [0x439451]
xor al, 0x97
mov byte [0x439471], al
movzx eax, byte [0x439452]
xor al, 0x2b
mov byte [0x439472], al
movzx eax, byte [0x439453]
xor al, 0x26
mov byte [0x439473], al
movzx eax, byte [0x439474]
xor al, 0xf2
mov byte [0x43947d], al
movzx eax, byte [0x439475]
xor al, 0xde
mov byte [0x43947e], al
movzx eax, byte [0x439476]
xor al, 0xb3
mov byte [0x43947f], al
movzx eax, byte [0x439477]
xor al, 0x77
mov byte [0x439480], al
movzx eax, byte [0x439478]
xor al, 0x4e
mov byte [0x439481], al
movzx eax, byte [0x439479]
xor al, 0x9b
mov byte [0x439482], al
movzx eax, byte [0x43947a]
mov ecx, eax
add cl, al
and cl, 0x40
sub al, cl
add al, 0xa0
mov byte [0x439483], al
movzx eax, byte [0x43947b]
mov ecx, eax
not cl
or cl, 0x8b
or al, 0x74
and al, cl
mov byte [0x439484], al
movzx eax, byte [0x43947c]
xor al, 0xa9
mov byte [0x439485], al
mov dword [0x44214c], 1
push eax
mov edx, esp
push eax
mov dword [esi + 0x14], esp
sub esp, 0xc
mov ebx, esp
push eax
mov dword [esi + 0x24], esp
sub esp, 0x80
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0x1c
mov ecx, esp
and ecx, 0xfffffff0
mov esp, ecx
push eax
sub esp, 0x1c
mov edi, esp
and edi, 0xfffffff0
mov dword [esi + 0x10], edi
mov esp, edi
push eax
sub esp, 0x1c
mov edi, esp
and edi, 0xfffffff0
mov dword [esi + 0xc], edi
mov esp, edi
push eax
sub esp, 0x10
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x18], esp
sub esp, 0x20
mov edi, esp
and edi, 0xfffffff0
mov dword [esi + 0x1c], edi
mov esp, edi
mov dword [esi + 0x2c], edx
mov edi, dword [ebp + 8]
mov dword [edx], edi
mov edx, dword [esi + 0x14]
mov byte [edx], 0
movzx edx, byte [0x439485]
mov byte [ebx + 8], dl
mov edx, dword [0x439481]
mov dword [ebx + 4], edx
mov edx, dword [0x43947d]
mov dword [esi + 0x28], ebx
mov dword [ebx], edx
mov dword [eax], 0xab55a563
mov dword [eax + 4], 0xaf5ca958
mov dword [eax + 8], 0xb35ead45
mov dword [eax + 0xc], 0xb783b146
mov dword [eax + 0x10], 0xbb4bb562
mov dword [eax + 0x14], 0xbf53b94a
mov dword [eax + 0x18], 0x439cbd80
mov dword [eax + 0x1c], 0x47b041a5
mov dword [eax + 0x20], 0x4ba845b6
mov dword [eax + 0x24], 0x4fad49a5
mov dword [eax + 0x28], 0x53b84da9
mov dword [eax + 0x2c], 0x57a151bd
mov dword [eax + 0x30], 0x5b6555a4
mov dword [eax + 0x34], 0x5f6b59a2
mov dword [eax + 0x38], 0x63a55da7
mov dword [eax + 0x3c], 0x6753619b
mov dword [eax + 0x40], 0x6b95658c
mov dword [eax + 0x44], 0x6f9b699c
mov dword [eax + 0x48], 0x73976d5d
mov dword [eax + 0x4c], 0x779c7184
mov dword [eax + 0x50], 0x7b86759d
mov dword [eax + 0x54], 0x7f89799f
mov dword [eax + 0x58], 0x3977d9a
mov dword [eax + 0x5c], 0x71301e6
mov dword [eax + 0x60], 0xb040508
mov byte [eax + 0x70], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x64], 0
mov dword [esi + 8], 0
mov edx, dword [esi + 8]
cmp edx, 0x70
ja 0x40ab29
nop
nop
nop
mov edx, dword [esi + 8]
mov edi, dword [esi + 8]
movzx edi, byte [eax + edi]
lea ebx, [edx + 0x65]
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
add dl, 0xa2
mov edi, dword [esi + 8]
mov byte [eax + edi], dl
inc dword [esi + 8]
mov edx, dword [esi + 8]
cmp edx, 0x71
jb 0x40ab00
mov dword [ecx], 0x6bcb6d3f
mov dword [ecx + 4], 0x67ff69f8
mov word [ecx + 8], 0x6564
mov dword [ecx + 0xa], 0
mov dword [ecx + 0xe], 0
mov dword [ecx + 0x12], 0
mov word [ecx + 0x16], 0
mov dword [esi + 8], 0
mov edx, dword [esi + 8]
cmp edx, 0x17
ja 0x40aba3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 8]
mov edx, dword [esi + 8]
movzx ebx, byte [ecx + edx]
lea edx, [edi + ebx]
add edx, 0x109b5d52
add edi, 0x109b5d52
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xc2
mov edi, dword [esi + 8]
mov byte [ecx + edi], dl
inc dword [esi + 8]
mov edx, dword [esi + 8]
cmp edx, 0x18
jb 0x40ab70
push 0
mov ebx, dword [esi + 0x24]
push ebx
push 8
push dword [esi + 0x28]
push eax
push ecx
mov eax, dword [esi + 0x2c]
push dword [eax]
call fcn.0040af20
add esp, 0x1c
test al, al
je 0x40aecd
mov edi, dword [esi + 0x10]
mov dword [edi], 0
mov word [edi + 0x18], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov word [edi], 0x1407
mov byte [edi + 2], 0xb8
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x19
ja 0x40ac4e
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x1768f597]
lea edi, [eax + 0x97]
xor edi, edx
and edx, ecx
and edi, ecx
add eax, ecx
add eax, 0x1768f597
lea ecx, [edi + edx*2]
mov edi, dword [esi + 0x10]
sub eax, ecx
add al, 0xdf
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x1a
jb 0x40ac10
mov eax, dword [ebx]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [edi + ecx]
test dl, dl
je 0x40ac70
inc ecx
cmp dl, dh
je 0x40ac60
cmp dl, dh
mov edi, dword [esi + 0xc]
jne 0x40ac82
mov ecx, dword [esi + 0x14]
mov byte [ecx], 1
jmp 0x40aec4
mov dword [edi], 0xeffdfeeb
mov dword [edi + 4], 0x9feaecf9
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov byte [edi + 0x18], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x18
ja 0x40acf6
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0x1acd7c13
xor eax, 0x9acd7c13
lea edx, [eax + edx*2]
lea eax, [edx + ecx]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x7b
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x19
jb 0x40acc0
mov eax, dword [ebx]
movzx ecx, byte [edi]
mov edi, eax
test cl, cl
je 0x40ad2f
mov edx, dword [esi + 0xc]
mov ebx, eax
mov edi, eax
jmp 0x40ad1d
inc edi
mov ebx, edi
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx]
test cl, cl
je 0x40ad2f
mov ch, byte [ebx]
test ch, ch
je 0x40aec4
cmp ch, cl
jne 0x40ad10
inc ebx
inc edx
jmp 0x40ad16
test edi, edi
je 0x40aec4
mov ecx, dword [0x439470]
mov edx, dword [esi + 0x20]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x43946c]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x439468]
mov dword [edx + 8], ecx
mov ecx, dword [0x439464]
mov dword [edx + 4], ecx
mov ebx, dword [0x439460]
mov dword [edx], ebx
test bl, bl
je 0x40ad90
mov edi, eax
jmp 0x40ad7d
inc edi
mov eax, edi
mov edx, dword [esi + 0x20]
movzx ebx, byte [edx]
test bl, bl
je 0x40ad92
movzx ecx, byte [eax]
test cl, cl
je 0x40aebf
cmp cl, bl
jne 0x40ad70
inc eax
inc edx
jmp 0x40ad76
mov edi, eax
test edi, edi
je 0x40aebf
add edi, 0x13
mov eax, dword [esi + 0x18]
mov dword [eax], edi
mov ebx, dword [esi + 0x1c]
mov dword [ebx], 0
mov dword [ebx + 0xf], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov word [ebx], 0xaf4a
mov byte [ebx + 2], 0x72
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x12
ja 0x40ae1f
nop
mov edx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx ecx, byte [ebx + eax]
lea eax, [edx + ecx]
add eax, 0x41b5172e
add edx, 0x41b5172e
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xbe
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, 0x13
jb 0x40ade0
movzx edx, byte [ebx]
test dl, dl
je 0x40ae4c
mov eax, ebx
mov ebx, edi
jmp 0x40ae3d
inc ebx
mov edi, ebx
mov eax, dword [esi + 0x1c]
movzx edx, byte [eax]
test dl, dl
je 0x40ae50
movzx ecx, byte [edi]
test cl, cl
je 0x40aebf
cmp cl, dl
jne 0x40ae30
inc edi
inc eax
jmp 0x40ae36
mov ebx, edi
jmp 0x40ae54
test ebx, ebx
je 0x40aebf
mov byte [0x442560], 1
mov eax, dword [esi + 0x18]
mov edi, dword [eax]
mov dword [esi + 8], 0
mov ecx, 0x442562
mov dword [esi + 0xc], ebx
cmp ebx, edi
jbe 0x40aeb4
mov ebx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40aeb4
lea eax, [esi + 8]
push eax
push ebx
push edi
mov dword [esi + 0x10], ecx
call fcn.00411600
add esp, 0xc
movzx ecx, word [esi + 8]
mov edx, dword [esi + 0x10]
mov word [edx], cx
mov ecx, dword [esi + 0x10]
add ecx, 2
cmp ecx, 0x442760
jae 0x40aeb4
add edi, eax
cmp edi, ebx
jb 0x40ae80
mov word [ecx], 0
mov eax, dword [esi + 0x14]
mov byte [eax], 1
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
push eax
call fcn.0042f7b0
add esp, 4
mov eax, dword [esi + 0x14]
movzx eax, byte [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret