Function at 0x40a7c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov esi, esp
mov eax, dword [0x4439b8]
test eax, eax
jne 0x40a9c5
movzx eax, byte [0x43a474]
xor al, 0x90
mov byte [0x43a47d], al
movzx eax, byte [0x43a475]
mov ecx, eax
not cl
or al, 0x61
or cl, 0x9e
and cl, al
not cl
mov byte [0x43a47e], cl
movzx eax, byte [0x43a476]
xor al, 0x8a
mov byte [0x43a47f], al
movzx eax, byte [0x43a477]
xor al, 0xa9
mov byte [0x43a480], al
movzx eax, byte [0x43a478]
xor al, 0xb
mov byte [0x43a481], al
movzx eax, byte [0x43a479]
xor al, 0xe1
mov byte [0x43a482], al
movzx eax, byte [0x43a47a]
xor al, 0xe8
mov byte [0x43a483], al
movzx eax, byte [0x43a47b]
xor al, 0xab
mov byte [0x43a484], al
movzx eax, byte [0x43a47c]
mov ecx, eax
not cl
or cl, 0x27
or al, 0xd8
and al, cl
mov byte [0x43a485], al
movzx eax, byte [0x43a440]
mov ecx, eax
not cl
or al, 0x1b
or cl, 0xe4
and cl, al
not cl
mov byte [0x43a460], cl
movzx eax, byte [0x43a441]
mov ecx, eax
add cl, al
and cl, 0x6e
sub al, cl
add al, 0x37
mov byte [0x43a461], al
movzx eax, byte [0x43a442]
mov ecx, eax
not cl
or al, 0x31
or cl, 0xce
and cl, al
not cl
mov byte [0x43a462], cl
movzx eax, byte [0x43a443]
xor al, 0x49
mov byte [0x43a463], al
movzx eax, byte [0x43a444]
xor al, 0xfe
mov byte [0x43a464], al
movzx eax, byte [0x43a445]
xor al, 0xf6
mov byte [0x43a465], al
movzx eax, byte [0x43a446]
xor al, 0xc0
mov byte [0x43a466], al
movzx eax, byte [0x43a447]
mov ecx, eax
not cl
or cl, 0xd3
or al, 0x2c
and al, cl
mov byte [0x43a467], al
movzx eax, byte [0x43a448]
xor al, 0x83
mov byte [0x43a468], al
movzx eax, byte [0x43a449]
xor al, 0x75
mov byte [0x43a469], al
movzx eax, byte [0x43a44a]
xor al, 0x3d
mov byte [0x43a46a], al
movzx eax, byte [0x43a44b]
xor al, 0xdb
mov byte [0x43a46b], al
movzx eax, byte [str.8zqZ]
xor al, 0x4e
mov byte [0x43a46c], al
movzx eax, byte [0x43a44d]
mov ecx, eax
not cl
or al, 0xe4
or cl, 0x1b
and cl, al
not cl
mov byte [0x43a46d], cl
movzx eax, byte [0x43a44e]
xor al, 0x1d
mov byte [0x43a46e], al
movzx eax, byte [0x43a44f]
xor al, 0x2f
mov byte [0x43a46f], al
movzx eax, byte [0x43a450]
xor al, 0xb8
mov byte [0x43a470], al
movzx eax, byte [0x43a451]
xor al, 0xe2
mov byte [0x43a471], al
movzx eax, byte [0x43a452]
mov ecx, eax
add cl, al
and cl, 0x16
sub al, cl
add al, 0x8b
mov byte [0x43a472], al
movzx eax, byte [0x43a453]
xor al, 0x81
mov byte [0x43a473], al
mov dword [0x4439b8], 1
push eax
mov edx, esp
push eax
mov dword [esi + 0x14], esp
sub esp, 0xc
mov ebx, esp
push eax
mov dword [esi + 0x18], 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 + 0x24], esp
push eax
mov dword [esi + 0x1c], esp
sub esp, 0x20
mov edi, esp
and edi, 0xfffffff0
mov dword [esi + 0x20], 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 [0x43a485]
mov byte [ebx + 8], dl
mov edx, dword [0x43a481]
mov dword [ebx + 4], edx
mov edx, dword [0x43a47d]
mov dword [esi + 0x28], ebx
mov dword [ebx], edx
mov dword [eax], 0x63cd61a3
mov dword [eax + 4], 0x67f265ca
mov dword [eax + 8], 0x6bc469cd
mov dword [eax + 0xc], 0x6f836df8
mov dword [eax + 0x10], 0x53cb51e4
mov dword [eax + 0x14], 0x57f355c4
mov dword [eax + 0x18], 0x5bba5982
mov dword [eax + 0x1c], 0x5fce5dfd
mov dword [eax + 0x20], 0x43ee41d0
mov dword [eax + 0x24], 0x47e545ed
mov dword [eax + 0x28], 0x4bde49e9
mov dword [eax + 0x2c], 0x4fe14de5
mov dword [eax + 0x30], 0x33dd319e
mov dword [eax + 0x34], 0x37db35ac
mov dword [eax + 0x38], 0x3bad39af
mov dword [eax + 0x3c], 0x3fd33dab
mov dword [eax + 0x40], 0x238d2186
mov dword [eax + 0x44], 0x278b25b6
mov dword [eax + 0x48], 0x2bbf29c5
mov dword [eax + 0x4c], 0x2f822dbe
mov dword [eax + 0x50], 0x13bc11b5
mov dword [eax + 0x54], 0x17b915b7
mov dword [eax + 0x58], 0x1bbf19bc
mov dword [eax + 0x5c], 0x1f131db8
mov dword [eax + 0x60], 0x302010a
mov byte [eax + 0x78], 0
mov dword [eax + 0x74], 0
mov dword [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, 0x78
ja 0x40ab60
nop
nop
nop
nop
nop
mov edx, dword [esi + 8]
mov edi, dword [esi + 8]
add dl, 0x90
xor dl, byte [eax + edi]
add dl, 0x10
mov edi, dword [esi + 8]
mov byte [eax + edi], dl
inc dword [esi + 8]
mov edx, dword [esi + 8]
cmp edx, 0x79
jb 0x40ab40
mov dword [ecx], 0xb313b1cf
mov dword [ecx + 4], 0xb70fb504
mov word [ecx + 8], 0x8988
mov dword [ecx + 0xa], 0
mov dword [ecx + 0xe], 0
mov dword [ecx + 0x12], 0
mov dword [ecx + 0x15], 0
mov dword [esi + 8], 0
mov edx, dword [esi + 8]
cmp edx, 0x18
ja 0x40abd3
nop
nop
mov edi, dword [esi + 8]
mov edx, dword [esi + 8]
movzx ebx, byte [ecx + edx]
lea edx, [edi + ebx]
add edx, 0xd75ea198
add edi, 0xd75ea198
and edi, ebx
add edi, edi
sub edx, edi
add dl, 0xd8
mov edi, dword [esi + 8]
mov byte [ecx + edi], dl
inc dword [esi + 8]
mov edx, dword [esi + 8]
cmp edx, 0x19
jb 0x40aba0
push 0
mov edi, dword [esi + 0x18]
push edi
push 8
push dword [esi + 0x28]
push eax
push ecx
mov eax, dword [esi + 0x2c]
push dword [eax]
call fcn.0040af50
add esp, 0x1c
test al, al
je 0x40aefd
mov ebx, dword [esi + 0x10]
mov dword [ebx], 0
mov byte [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov word [ebx], 0xb2af
mov byte [ebx + 2], 0x1a
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x18
ja 0x40ac71
nop
nop
nop
mov ecx, dword [esi + 8]
mov eax, dword [esi + 8]
movzx edx, byte [ebx + eax]
lea eax, [ecx + edx]
add eax, 0x1f165efc
add ecx, 0x1f165efc
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x1c
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x19
jb 0x40ac40
mov eax, dword [edi]
xor ecx, ecx
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
mov dh, byte [edi + ecx]
test dl, dl
je 0x40ac90
inc ecx
cmp dl, dh
je 0x40ac80
cmp dl, dh
jne 0x40ac9f
mov ecx, dword [esi + 0x14]
mov byte [ecx], 1
jmp 0x40aef4
mov dword [ebx], 0xbfc9cebb
mov dword [ebx + 4], 0xcfc2c0c5
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov word [ebx + 0x1c], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x1d
ja 0x40ad26
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x79]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0x2a
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, 0x1e
jb 0x40acf0
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
movzx ecx, byte [ebx]
mov edi, eax
test cl, cl
je 0x40ad5f
mov edx, dword [esi + 0xc]
mov ebx, eax
mov edi, eax
jmp 0x40ad4d
inc edi
mov ebx, edi
mov edx, dword [esi + 0xc]
movzx ecx, byte [edx]
test cl, cl
je 0x40ad5f
mov ch, byte [ebx]
test ch, ch
je 0x40aef4
cmp ch, cl
jne 0x40ad40
inc ebx
inc edx
jmp 0x40ad46
test edi, edi
je 0x40aef4
mov ecx, dword [0x43a470]
mov edx, dword [esi + 0x24]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x43a46c]
mov dword [edx + 0xc], ecx
mov ecx, dword [0x43a468]
mov dword [edx + 8], ecx
mov ecx, dword [0x43a464]
mov dword [edx + 4], ecx
mov ebx, dword [0x43a460]
mov dword [edx], ebx
test bl, bl
je 0x40adc0
mov edi, eax
jmp 0x40adad
inc edi
mov eax, edi
mov edx, dword [esi + 0x24]
movzx ebx, byte [edx]
test bl, bl
je 0x40adc2
movzx ecx, byte [eax]
test cl, cl
je 0x40aeef
cmp cl, bl
jne 0x40ada0
inc eax
inc edx
jmp 0x40ada6
mov edi, eax
test edi, edi
je 0x40aeef
add edi, 0x13
mov eax, dword [esi + 0x1c]
mov dword [eax], edi
mov ebx, dword [esi + 0x20]
mov dword [ebx], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov word [ebx], 0x5fba
mov byte [ebx + 2], 0x9a
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x17
ja 0x40ae49
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, eax
and edx, 0x44
xor eax, 0xc4
lea eax, [eax + edx*2]
xor al, byte [ebx + ecx]
add al, 0xa4
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x18
jb 0x40ae20
movzx edx, byte [ebx]
test dl, dl
je 0x40ae7c
mov eax, ebx
mov ebx, edi
jmp 0x40ae6d
inc ebx
mov edi, ebx
mov eax, dword [esi + 0x20]
movzx edx, byte [eax]
test dl, dl
je 0x40ae80
movzx ecx, byte [edi]
test cl, cl
je 0x40aeef
cmp cl, dl
jne 0x40ae60
inc edi
inc eax
jmp 0x40ae66
mov ebx, edi
jmp 0x40ae84
test ebx, ebx
je 0x40aeef
mov byte [0x443dcc], 1
mov eax, dword [esi + 0x1c]
mov edi, dword [eax]
mov dword [esi + 8], 0
mov ecx, 0x443dce
mov dword [esi + 0xc], ebx
cmp ebx, edi
jbe 0x40aee4
mov ebx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40aee4
lea eax, [esi + 8]
push eax
push ebx
push edi
mov dword [esi + 0x10], ecx
call fcn.00410800
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, 0x443fcc
jae 0x40aee4
add edi, eax
cmp edi, ebx
jb 0x40aeb0
mov word [ecx], 0
mov eax, dword [esi + 0x14]
mov byte [eax], 1
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
push eax
call fcn.00430db0
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