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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf0
cmp dword [ecx + 0x20], 0
je 0x40a0ce
mov esi, ecx
movzx eax, byte [ecx]
mov byte [esp + 0x23], 0
test eax, eax
je 0x40a0d5
cmp al, 0x64
jb 0x40a0e4
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*8]
shr edx, 0xc
imul ecx, edx, 0x64
sub al, cl
movzx eax, al
movzx eax, word [eax + eax + 0x445520]
mov word [esp + 0x21], ax
mov ecx, 0xfffffffd
mov eax, edx
jmp 0x40a0ed
mov bl, 1
jmp 0x40abfc
lea eax, [esp + 0x22]
mov dword [esp + 4], eax
mov byte [esp + 0x22], 0x30
jmp 0x40a11a
mov ecx, 0xffffffff
cmp al, 9
ja 0x40a105
lea edx, [esp + 0x24]
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
add edx, ecx
dec edx
mov dword [esp + 4], edx
mov byte [esp + ecx + 0x23], al
jmp 0x40a11a
movzx eax, word [eax + eax + 0x445520]
lea ecx, [esp + 0x21]
mov dword [esp + 4], ecx
mov word [esp + 0x21], ax
lea eax, [esi + 0x10]
push eax
call fcn.00406b70
add esp, 4
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xc4], eax
lea edi, [esp + 0xcb]
push edi
call fcn.00438be0
add esp, 4
mov dword [esp + 0x2c], ebx
lea eax, [ebx + 0x400]
push eax
call fcn.00408c10
add esp, 4
mov edx, eax
mov dword [esp + 0x30], 0x7033604
mov byte [esp + 0x34], 0xa8
mov word [esp + 0x35], 0
mov byte [esp + 0x37], 0
mov dword [esp + 8], 0x1179e
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x31]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x174
xor eax, 0xd570d040
sub ecx, eax
add ecx, 0xeab87dba
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x31], al
movzx eax, byte [esp + 0x32]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x17a
xor eax, 0xd570d042
sub ecx, eax
add ecx, 0xeab87dbd
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x32], al
movzx eax, byte [esp + 0x33]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x178
xor eax, 0xd570d040
sub ecx, eax
add ecx, 0xeab87dbc
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x34]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x17e
xor eax, 0xd570d042
sub ecx, eax
add ecx, 0xeab87dbf
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x35]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x17c
xor eax, 0xd570d040
sub ecx, eax
add ecx, 0xeab87dbe
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x35], al
movzx eax, byte [esp + 0x36]
mov ecx, eax
xor ecx, 0xeab96a21
add eax, eax
and eax, 0x102
xor eax, 0xd570d002
sub ecx, eax
add ecx, 0xeab87d81
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x36], al
movzx eax, byte [esp + 0x37]
mov ecx, eax
xor ecx, 0xeab96a21
and eax, 0xffffff80
lea eax, [eax*2 - 0x2a8f3000]
sub ecx, eax
add ecx, 0xeab87d80
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0xca
mov byte [esp + 0x37], al
lea eax, [esp + 0x30]
mov ecx, esi
push edi
push eax
mov dword [esp + 0x2c], edx
push edx
call fcn.004097c0
mov dword [esp + 0x30], 0x83687276
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov eax, 0x81024dc1
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x7efdb26f]
xor ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov edx, ecx
not edx
and edx, 0xc6
and ecx, 0x39
sub ecx, edx
add cl, 0x7f
mov byte [esp + eax + 0x7efdb26f], cl
movzx ecx, byte [esp + eax + 0x7efdb270]
lea edx, [eax + 1]
xor edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [esp + 8]
mov edx, ecx
not edx
and edx, 0xc6
and ecx, 0x39
sub ecx, edx
add cl, 0x7f
mov byte [esp + eax + 0x7efdb270], cl
add eax, 2
cmp eax, 0x81024dcd
jne 0x40a300
mov dword [esp + 0x28], esi
mov ecx, esi
push dword [esp + 4]
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x2c]
call fcn.004097c0
mov eax, dword [str.LPnhqo__nfzeonwcituc]
mov dword [esp + 0x30], 0xabc6c438
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov ecx, 0x376788ba
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x3767888a]
mov edx, ecx
and edx, edi
mov ebx, edx
and ebx, 2
mov esi, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and esi, 0xfffffffd
imul esi, ebx
add edx, esi
add edi, ecx
mov esi, edx
xor esi, edi
not edx
and edx, edi
add edx, edx
sub edx, esi
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
add edx, 0xfea70d03
mov esi, edx
xor esi, 0x16
and edx, 0x69
add edx, edx
sub edx, esi
add dl, 0xfd
mov byte [esp + ecx - 0x3767888a], dl
inc ecx
cmp ecx, 0x376788ca
jne 0x40a3b0
mov ecx, dword [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x2c]
call fcn.004097c0
mov dword [esp + 0x30], 0x676c6473
mov dword [esp + 0x34], 0x7463685b
mov dword [esp + 0x38], 0x6e6d687b
mov byte [esp + 0x3c], 0x8c
mov dword [esp + 0x3d], 0
mov word [esp + 0x41], 0
mov ebx, 0x2a506553
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebx - 0x2a506523]
mov edx, ebx
xor edx, 0x16a7aac0
mov edi, eax
and edi, 2
mov esi, eax
or esi, 0xfffffffd
inc esi
mov ecx, eax
and ecx, 0xfffffffd
imul ecx, esi
mov esi, eax
or esi, 2
imul esi, edi
lea edi, [edx - 0x265024d3]
sub ecx, esi
add ecx, eax
dec ecx
mov esi, 0x265024d2
sub esi, edx
or ecx, esi
mov dword [esp + 4], ecx
and esi, eax
lea ecx, [eax + eax]
not ecx
add ecx, eax
or eax, edi
mov edx, edi
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
add edx, dword [esp + 4]
or eax, ecx
sub eax, esi
mov edi, edx
not edi
xor edx, 0x76bd9939
or edi, eax
xor eax, 0x894266c6
mov ecx, edx
and ecx, eax
add ecx, ecx
sub eax, ecx
add eax, edx
not edi
or edi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 8]
add al, 0xc0
mov byte [esp + ebx - 0x2a506523], al
inc ebx
cmp ebx, 0x2a506566
jne 0x40a460
mov dword [esp + 8], 0xbbccdcd5
mov dword [esp + 0xc], 0
mov word [esp + 0x10], 0
mov dword [esp], 0x4c782ee2
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 8], al
movzx eax, byte [esp + 9]
lea ecx, [eax + eax]
and ecx, 0x70
neg ecx
add ecx, eax
add ecx, 0x4c782e38
or ecx, 0xb387d1c7
lea edx, [ecx + ecx]
not edx
add edx, ecx
add edx, edx
neg edx
add eax, edx
add eax, 0x4c782e38
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 9], al
movzx eax, byte [esp + 0xa]
lea ecx, [eax + eax]
and ecx, 0x72
neg ecx
lea edx, [eax + ecx]
add edx, 0x4c782e39
or edx, 0xb387d1c6
lea ecx, [edx + edx]
not ecx
add ecx, edx
mov edx, ecx
and edx, 2
mov esi, ecx
or esi, 2
imul esi, edx
and ecx, 0xfffffffd
lea ecx, [esi + ecx*2]
neg ecx
add eax, ecx
add eax, 0x4c782e39
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xa], al
movzx eax, byte [esp + 0xb]
lea ecx, [eax + 0x4c782e3a]
lea edx, [eax + eax]
and edx, 0x74
neg edx
lea esi, [eax + edx]
add esi, 0x4c782e3a
or esi, 0xb387d1c5
lea edx, [esi + esi]
not edx
add edx, esi
mov esi, edx
and esi, 0xfffffffc
and ecx, 2
imul ecx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, ecx
neg edx
add eax, edx
add eax, 0x4c782e3a
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xb], al
movzx eax, byte [esp + 0xc]
lea ecx, [eax + eax]
and ecx, 0x76
neg ecx
lea edx, [eax + ecx]
add edx, 0x4c782e3b
mov esi, edx
or esi, 0xb387d1c4
lea ecx, [esi + esi]
not ecx
add ecx, esi
mov esi, ecx
and esi, 0xfffffffd
and edx, 2
imul edx, esi
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
add ecx, edx
neg ecx
add eax, ecx
add eax, 0x4c782e3b
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xc], al
movzx eax, byte [esp + 0xd]
lea ecx, [eax + eax]
and ecx, 0x78
neg ecx
add ecx, eax
add ecx, 0x4c782e3c
or ecx, 0xb387d1c3
lea edx, [ecx + ecx]
not edx
add edx, ecx
add edx, edx
neg edx
add eax, edx
add eax, 0x4c782e3c
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xd], al
movzx eax, byte [esp + 0xe]
lea ecx, [eax + eax]
and ecx, 0x7a
neg ecx
lea edx, [eax + ecx]
add edx, 0x4c782e3d
or edx, 0xb387d1c2
lea ecx, [edx + edx]
not ecx
add ecx, edx
mov edx, ecx
and edx, 2
mov esi, ecx
or esi, 2
imul esi, edx
and ecx, 0xfffffffd
lea ecx, [esi + ecx*2]
neg ecx
add eax, ecx
add eax, 0x4c782e3d
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xe], al
movzx eax, byte [esp + 0xf]
lea ecx, [eax + 0x4c782e3e]
lea edx, [eax + eax]
and edx, 0x7c
neg edx
lea esi, [eax + edx]
add esi, 0x4c782e3e
or esi, 0xb387d1c1
lea edx, [esi + esi]
not edx
add edx, esi
mov esi, edx
and esi, 0xfffffffc
and ecx, 2
imul ecx, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
add edx, ecx
neg edx
add eax, edx
add eax, 0x4c782e3e
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0xf], al
movzx eax, byte [esp + 0x10]
lea ecx, [eax + eax]
and ecx, 0x7e
neg ecx
lea edx, [eax + ecx]
add edx, 0x4c782e3f
mov esi, edx
or esi, 0xb387d1c0
lea ecx, [esi + esi]
not ecx
add ecx, esi
mov esi, ecx
and esi, 0xfffffffd
and edx, 2
imul edx, esi
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
add ecx, edx
neg ecx
add eax, ecx
add eax, 0x4c782e3f
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0x10], al
movzx eax, byte [esp + 0x11]
mov ecx, eax
and ecx, 0x40
add ecx, ecx
neg ecx
add ecx, eax
add ecx, 0x4c782e40
or ecx, 0xb387d1bf
lea edx, [ecx + ecx]
not edx
add edx, ecx
add edx, edx
neg edx
add eax, edx
add eax, 0x4c782e40
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add al, 0x7e
mov byte [esp + 0x11], al
lea edx, [esp + 8]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x30]
push eax
push edx
push dword [esp + 0x2c]
call fcn.004097c0
mov dword [esp + 0x30], 0x60e0806
mov byte [esp + 0x34], 0x64
mov dword [esp + 0x35], 0
mov dword [esp + 0x39], 0
mov word [esp + 0x3d], 0
mov eax, 0x362c9370
mov ecx, 0xc9d36c8f
movzx edi, byte [esp + eax - 0x362c9340]
mov esi, ecx
and esi, 0x48924c08
mov edx, eax
and edx, 0x41267
or edx, esi
xor edx, edi
xor edx, 0x14532e7
and edx, eax
mov ebx, edx
and ebx, 2
mov esi, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and esi, 0x4127d
imul esi, ebx
add edx, esi
mov esi, edx
xor esi, eax
add esi, edi
and edx, ecx
add edx, edx
sub esi, edx
mov dword [esp + 8], esi
mov edx, dword [esp + 8]
add dl, 0xf0
mov byte [esp + eax - 0x362c9340], dl
inc eax
dec ecx
cmp ecx, 0xc9d36c80
jne 0x40a860
mov esi, dword [esp + 0x28]
mov ecx, esi
push dword [esp + 0x2c]
push dword [esp + 0xc8]
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x30]
call fcn.00409a80
mov eax, dword [esi + 0x60]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x8b798d53
mov dword [esp + 0x34], 0x870a897a
mov dword [esp + 0x38], 0x83708579
mov dword [esp + 0x3c], 0x9fab810c
mov dword [esp + 0x40], 0x9b139d70
mov dword [esp + 0x44], 0x976b9968
mov dword [esp + 0x48], 0x93b29552
mov dword [esp + 0x4c], 0xaf239165
mov dword [esp + 0x50], 0xab26ad58
mov dword [esp + 0x54], 0xa756a951
mov dword [esp + 0x58], 0xa32ca545
mov dword [esp + 0x5c], 0xbf8da12c
mov dword [esp + 0x60], 0xbb49bd46
mov dword [esp + 0x64], 0xb743b936
mov dword [esp + 0x68], 0xb34eb581
mov dword [esp + 0x6c], 0x4fc2b151
mov dword [esp + 0x70], 0x4b8d4dad
mov dword [esp + 0x74], 0x47b84968
mov dword [esp + 0x78], 0x43cf45b7
mov dword [esp + 0x7c], 0x5fa241b2
mov dword [esp + 0x80], 0x5bd45dbd
mov dword [esp + 0x84], 0x579359d1
mov dword [esp + 0x88], 0x53af55aa
mov dword [esp + 0x8c], 0x6fa35198
mov dword [esp + 0x90], 0x6b976d90
mov dword [esp + 0x94], 0x679f69a5
mov dword [esp + 0x98], 0x639e6594
mov dword [esp + 0x9c], 0x7f816193
mov dword [esp + 0xa0], 0x7b877d85
mov dword [esp + 0xa4], 0x77f879f6
mov dword [esp + 0xa8], 0x73437589
mov dword [esp + 0xac], 0xf187165
mov word [esp + 0xb0], 0xd0c
mov byte [esp + 0xba], 0
mov dword [esp + 0xb6], 0
mov dword [esp + 0xb2], 0
mov ecx, 0x8653d642
mov esi, 0xd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], esi
movzx eax, byte [esp + ecx + 0x79ac29ee]
mov esi, dword [esp + 4]
and esi, 0xd
mov edi, ecx
and edi, 0xf2
or edi, esi
xor edi, ecx
xor edi, 0xf2
and edi, eax
xor edi, ecx
mov dword [esp + 8], edi
mov edx, dword [esp + 8]
mov ebx, edx
not ebx
mov eax, ebx
and eax, 2
mov edi, edx
and edi, 0xfffffffd
imul edi, eax
mov eax, edx
and eax, 2
mov esi, edx
or esi, 2
imul esi, eax
add esi, edi
mov eax, esi
not eax
add eax, edx
sub esi, edx
lea edi, [esi + eax*2]
inc edi
or esi, 0x53b52431
lea eax, [esi + esi]
not eax
add eax, esi
mov esi, dword [esp + 4]
and edi, 0xce
or eax, edi
or ebx, 0x31
add ebx, edx
sub ebx, eax
inc bl
mov byte [esp + ecx + 0x79ac29ee], bl
inc ecx
dec esi
cmp ecx, 0x8653d6cd
jne 0x40aa50
mov dword [esp + 8], 0xc363c1af
mov dword [esp + 0xc], 0xc76fc574
mov word [esp + 0x10], 0xc9c8
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
xor ecx, ecx
mov edx, 0x9f73891f
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edx
movzx esi, byte [esp + ecx + 8]
mov eax, esi
not eax
mov edx, dword [esp + 4]
and edx, 4
mov edi, dword [esp + 4]
or edi, 0x9b
lea ebx, [ecx + edi]
add ebx, 0xe1
or ebx, edx
mov edx, eax
and edx, 0xb7279f90
mov edi, esi
and edi, 0x6f
or edi, edx
mov edx, edi
xor edx, 0xb7279f90
and edx, eax
xor ebx, 0x64
and ebx, esi
xor edi, esi
xor edi, 0x48d8606f
add edi, esi
add edi, edx
mov edx, 0xfffffffe
sub edx, edi
mov esi, dword [esp + 4]
and esi, 0x94330111
mov eax, ecx
and eax, 0xe
or eax, esi
xor eax, edx
xor eax, 0xf4bf77f1
and eax, edx
or eax, ebx
lea edx, [eax + eax*2]
not eax
lea eax, [edx + eax*4]
add eax, 3
mov edx, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xe0
mov byte [esp + ecx + 8], al
inc ecx
dec edx
cmp ecx, 0x14
jne 0x40ab20
push 0x493e0
push dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
push esi
push 0
push 0
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040d170
add esp, 0x1c
mov ebx, eax
push esi
call fcn.00408c20
add esp, 4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret