Function at 0x40a5d0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov word [esp + 4], 0x85b7
mov byte [esp + 6], 0xba
mov dword [esp + 7], 0
mov byte [esp + 0xb], 0
mov eax, 0xd21727df
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x2de8d825]
mov ecx, eax
and ecx, ebx
add ecx, ecx
sub ebx, ecx
add ebx, eax
mov ecx, ebx
and ecx, 1
or ebx, 1
add ebx, ecx
add bl, 0xa4
mov byte [esp + eax + 0x2de8d825], bl
inc eax
cmp eax, 0xd21727e7
jne 0x40a610
mov dword [esp + 0x14], 0x7270746e
mov word [esp + 0x18], 0x4d72
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov ebx, 0x12
mov edi, 0x50d523ed
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx + 2]
mov ebp, edi
or ebp, eax
lea ecx, [edi - 0x50d52300]
and ecx, eax
xor ecx, ebp
and ecx, ebx
add cl, cl
sub al, cl
movzx eax, al
add eax, ebx
add al, 0xa6
mov byte [esp + ebx + 2], al
inc ebx
dec edi
cmp ebx, 0x1e
jne 0x40a670
mov dword [esp + 0x24], 0xa8d70d0f
mov dword [esp + 0x28], 0x574d5baa
mov dword [esp + 0x2c], 0x562e1058
mov dword [esp + 0x30], 0x505f5f5d
mov dword [esp + 0x34], 0x585d575b
mov dword [esp + 0x38], 0x5f16315a
mov dword [esp + 0x3c], 0x2414d45
mov dword [esp + 0x40], 0x5242505c
mov dword [esp + 0x44], 0x56481b39
mov dword [esp + 0x48], 0x2b056c4b
mov byte [esp + 0x4c], 0xc4
mov dword [esp + 0x4d], 0
mov byte [esp + 0x51], 0
mov eax, 0x9b9019fb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x646fe629]
mov ebx, ecx
and ebx, eax
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, eax
add cl, 0x19
mov byte [esp + eax + 0x646fe629], cl
inc eax
cmp eax, 0x9b901a29
jne 0x40a710
add edx, dword [esp]
mov dword [esp], edx
mov word [esp + 0xc], 0x989f
mov byte [esp + 0xe], 0x4a
mov dword [esp + 0xf], 0
mov byte [esp + 0x13], 0
lea edi, [esp + 0xc]
mov ebx, 0x59f4e6c
nop
movzx eax, byte [edi]
lea ecx, [ebx - 0x60000000]
mov ebp, eax
xor ebp, 0x15
mov edx, ebx
and edx, 0x59f4225
and ecx, 0xa0000c4a
or ecx, 0x864025
xor ecx, edx
xor eax, 0xca
or eax, ecx
xor ecx, 0xef
or ecx, ebp
or eax, 0x10
and eax, ecx
add al, 0x21
mov byte [edi], al
inc edi
dec ebx
cmp ebx, 0x59f4e64
jne 0x40a760
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp]
mov edi, ecx
test al, al
je 0x40a7cb
lea ebx, [esp + 0xd]
mov edi, ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40a7c0
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 0x60]
test al, al
mov edx, dword [esp + 0x70]
je 0x40a7fb
lea ebx, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40a7f0
mov byte [edi], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40a81b
lea ebx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40a810
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40a83b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40a830
mov byte [edi], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x40a85b
lea esi, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40a850
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40a87b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40a870
mov byte [edi], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40a89b
lea edx, [esp + 5]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40a890
mov byte [edi], 0
sub edi, dword [esp]
add dword [ecx + 0x80], edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc