Function at 0x40a7f0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x3b8
mov eax, dword [0x447550]
mov cl, byte [esp + 0x4c]
mov byte [esp + 0x50], cl
mov byte [esp + 0xd8], 0x27
mov byte [esp + 0xd9], 0xad
mov byte [esp + 0xda], 0x5b
mov byte [esp + 0xdb], 0xa3
mov byte [esp + 0xdc], 0x52
mov byte [esp + 0xdd], 0xa1
mov byte [esp + 0xde], 0x5e
mov byte [esp + 0xdf], 0xa7
mov byte [esp + 0xe0], 0x50
mov byte [esp + 0xe1], 0xa5
mov byte [esp + 0xe2], 0x4e
mov byte [esp + 0xe3], 0xbb
mov byte [esp + 0xe4], 0x48
mov byte [esp + 0xe5], 0xb9
mov byte [esp + 0xe6], 0x8c
mov byte [esp + 0xe7], 0xbf
mov byte [esp + 0xe8], 0x58
mov byte [esp + 0xe9], 0xbd
mov byte [esp + 0xea], 0x4e
mov byte [esp + 0xeb], 0xb3
mov byte [esp + 0xec], 0x4c
mov byte [esp + 0xed], 0xb1
mov byte [esp + 0xee], 0xb6
mov byte [esp + 0xef], 0xb7
mov word [esp + 0xf0], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1a
jae 0x40a93e
jmp 0x40a8e9
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0xd8]
mov esi, ecx
add esi, 0xde038c66
lea ecx, [ecx + edx - 0x21fc739a]
and esi, edx
add esi, esi
sub ecx, esi
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x15c]
add cl, 0x36
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0xd8], cl
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1a
jb 0x40a8e9
jmp 0x40a93e
lea ecx, [esp + 0xd8]
xor edx, edx
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x800
call eax
sub esp, 0xc
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x158]
lea ecx, [0x447518]
mov dword [esp], eax
call fcn.00439130
sub esp, 4
test al, 1
jne 0x40a994
mov byte [esp + 0xf], 0
mov dword [esp + 0x10], 1
jmp 0x40b512
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0xcd5bd590
call fcn.0043b390
mov dword [0x447520], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x3098095e
call fcn.0043b390
mov dword [0x447524], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x4133be71
call fcn.0043b390
mov dword [0x447528], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x1c8a781f
call fcn.0043b390
mov dword [0x44752c], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x71c23cd8
call fcn.0043b390
mov dword [0x447530], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x1c121576
call fcn.0043b390
jmp 0x40aa2d
mov dword [0x447534], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x21bbc64b
call fcn.0043b390
mov dword [0x447538], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x8d2eb73e
call fcn.0043b390
mov dword [0x44753c], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0xde1934d7
call fcn.0043b390
mov dword [0x447540], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0xa2add3c4
call fcn.0043b390
mov dword [0x447544], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0x1f4c40ff
call fcn.0043b390
mov dword [0x447548], eax
mov eax, dword [0x447518]
mov dword [esp], eax
mov dword [esp + 4], 0xfe8974d2
call fcn.0043b390
mov dword [0x44754c], eax
lea eax, [0x43f5f4]
mov dword [esp + 0x170], eax
lea eax, [0x43f5f4]
mov dword [esp + 0x2c], eax
lea eax, [0x43f5f4]
add eax, 0x24
mov dword [esp + 0x154], eax
jmp 0x40aaf7
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x154]
jne 0x40ab11
mov dword [esp + 0x10], 2
jmp 0x40ac58
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x150], eax
lea eax, [esp + 0x234]
mov ecx, dword [esp + 0x150]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434370
lea esi, [esp + 0x234]
lea ebx, [esp + 0x2b4]
mov eax, ebx
add eax, 0x100
mov dword [esp + 0x34], eax
mov ecx, esi
mov eax, ecx
mov dl, byte [eax]
add ecx, 1
cmp dl, 0
jne 0x40ab53
sub eax, esi
mov edi, esi
add edi, eax
mov dword [esp + 0x144], 0
mov eax, dword [esp + 0x34]
add eax, 0xfffffffe
cmp edi, esi
ja 0x40ab7d
jmp 0x40abd0
mov dword [esp + 0x34], eax
jmp 0x40ab83
cmp byte [esi], 0
jne 0x40ab8c
mov eax, ebx
jmp 0x40abce
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0040ed80
add esi, eax
mov cx, word [esp + 0x144]
mov eax, ebx
add eax, 2
mov word [ebx], cx
mov ecx, eax
sub ecx, dword [esp + 0x34]
setb cl
mov edx, esi
sub edx, edi
setb dl
and cl, dl
test cl, 1
mov ebx, eax
jne 0x40ab83
mov ebx, eax
mov word [ebx], 0
lea eax, [esp + 0x2b4]
mov dword [esp], eax
call fcn.0040b530
test al, 1
jne 0x40abea
jmp 0x40ac16
lea eax, [esp + 0x2b4]
lea ecx, [0x447554]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040bfa0
jmp 0x40ac05
mov byte [esp + 0xf], 1
mov dword [esp + 0x10], 1
jmp 0x40ac14
jmp 0x40ac20
mov dword [esp + 0x10], 0
jmp 0x40ac20
mov eax, dword [esp + 0x10]
jmp 0x40ac26
cmp eax, 0
jne 0x40ac35
mov dword [esp + 0x10], 0
jmp 0x40ac35
mov eax, dword [esp + 0x10]
jmp 0x40ac3b
cmp eax, 0
jne 0x40ac56
jmp 0x40ac42
mov eax, dword [esp + 0x2c]
add eax, 4
jmp 0x40ac4b
mov dword [esp + 0x2c], eax
jmp 0x40ac51
jmp 0x40aaf7
jmp 0x40ac58
cmp dword [esp + 0x10], 2
jne 0x40b512
xor eax, eax
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetProcessVersion]
sub esp, 4
mov dword [esp + 0x16c], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x14c], 0
mov al, byte [esp + 0x44]
mov byte [esp + 0x54], al
mov byte [esp + 0x60], 0x68
mov byte [esp + 0x61], 0xc1
mov byte [esp + 0x62], 0x76
mov byte [esp + 0x63], 0xc3
mov byte [esp + 0x64], 0x70
mov byte [esp + 0x65], 0xc5
mov byte [esp + 0x66], 0x76
mov byte [esp + 0x67], 0xc7
mov byte [esp + 0x68], 0x7b
mov byte [esp + 0x69], 0xc9
mov byte [esp + 0x6a], 0xb0
mov byte [esp + 0x6b], 0xcb
mov byte [esp + 0x6c], 0xa3
mov byte [esp + 0x6d], 0xcd
mov byte [esp + 0x6e], 0xa1
mov byte [esp + 0x6f], 0xcf
mov byte [esp + 0x70], 0x63
mov byte [esp + 0x71], 0xd1
mov byte [esp + 0x72], 0x66
mov byte [esp + 0x73], 0xd3
mov byte [esp + 0x74], 0x71
mov byte [esp + 0x75], 0xd5
mov byte [esp + 0x76], 0x77
mov byte [esp + 0x77], 0xd7
mov byte [esp + 0x78], 0x75
mov byte [esp + 0x79], 0xd9
mov byte [esp + 0x7a], 0x79
mov byte [esp + 0x7b], 0xdb
mov byte [esp + 0x7c], 0x73
mov byte [esp + 0x7d], 0xdd
mov byte [esp + 0x7e], 0x73
mov byte [esp + 0x7f], 0xdf
mov byte [esp + 0x80], 0x8d
mov byte [esp + 0x81], 0x21
mov byte [esp + 0x82], 0x97
mov byte [esp + 0x83], 0x23
mov byte [esp + 0x84], 0x8a
mov byte [esp + 0x85], 0x25
mov byte [esp + 0x86], 0x8f
mov byte [esp + 0x87], 0x27
mov byte [esp + 0x88], 0x9c
mov byte [esp + 0x89], 0x29
mov byte [esp + 0x8a], 0x93
mov byte [esp + 0x8b], 0x2b
mov byte [esp + 0x8c], 0x42
mov byte [esp + 0x8d], 0x2d
mov byte [esp + 0x8e], 0x8d
mov byte [esp + 0x8f], 0x2f
mov byte [esp + 0x90], 0x9f
mov byte [esp + 0x91], 0x31
mov byte [esp + 0x92], 0x9f
mov byte [esp + 0x93], 0x33
mov byte [esp + 0x94], 0x5b
mov byte [esp + 0x95], 0x35
mov byte [esp + 0x96], 0x86
mov byte [esp + 0x97], 0x37
mov byte [esp + 0x98], 0x8a
mov byte [esp + 0x99], 0x39
mov byte [esp + 0x9a], 0x95
mov byte [esp + 0x9b], 0x3b
mov byte [esp + 0x9c], 0x9a
mov byte [esp + 0x9d], 0x3d
mov byte [esp + 0x9e], 0x97
mov byte [esp + 0x9f], 0x3f
mov byte [esp + 0xa0], 0xac
mov byte [esp + 0xa1], 1
mov byte [esp + 0xa2], 0xa7
mov byte [esp + 0xa3], 3
mov byte [esp + 0xa4], 0xb7
mov byte [esp + 0xa5], 5
mov byte [esp + 0xa6], 0x69
mov byte [esp + 0xa7], 7
mov byte [esp + 0xa8], 0x7f
mov byte [esp + 0xa9], 9
mov byte [esp + 0xaa], 0x7c
mov byte [esp + 0xab], 0xb
mov byte [esp + 0xac], 0x79
mov byte [esp + 0xad], 0xd
mov byte [esp + 0xae], pe_nt_image_headers32
mov byte [esp + 0xaf], 0xf
mov byte [esp + 0xb0], 0x61
mov byte [esp + 0xb1], 0x11
mov byte [esp + 0xb2], 0x63
mov byte [esp + 0xb3], 0x13
mov byte [esp + 0xb4], 0x6d
mov byte [esp + 0xb5], 0x15
mov byte [esp + 0xb6], 0x6f
mov byte [esp + 0xb7], 0x17
mov byte [esp + 0xb8], 0x6f
mov byte [esp + 0xb9], 0x19
mov byte [esp + 0xba], 0x68
mov byte [esp + 0xbb], 0x1b
mov byte [esp + 0xbc], 0x68
mov byte [esp + 0xbd], 0x1d
mov byte [esp + 0xbe], 0x6d
mov byte [esp + 0xbf], 0x1f
mov byte [esp + 0xc0], 0x13
mov byte [esp + 0xc1], 0x61
mov byte [esp + 0xc2], 0x13
mov byte [esp + 0xc3], 0x63
mov byte [esp + 0xc4], 0x1d
mov byte [esp + 0xc5], 0x65
mov byte [esp + 0xc6], 0x16
mov byte [esp + 0xc7], 0x67
mov byte [esp + 0xc8], 0x18
mov byte [esp + 0xc9], 0x69
mov byte [esp + 0xca], 0x6a
mov byte [esp + 0xcb], 0x6b
lea eax, [esp + 0x60]
add eax, 0x6c
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 6
call fcn.00409180
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0x72
jae 0x40b019
jmp 0x40afcb
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x60]
mov edx, eax
add edx, 0xe0
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb1431be0
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x160]
add al, 0xe0
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x60], al
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp eax, 0x72
jb 0x40afcb
jmp 0x40b019
lea eax, [esp + 0x60]
lea ecx, [esp + 0x48]
lea edx, [esp + 0x14c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040bfe0
test al, 1
jne 0x40b041
jmp 0x40b4fb
mov byte [esp + 0x17], 0
mov al, byte [esp + 0x3c]
mov byte [esp + 0x58], al
mov byte [esp + 0xf8], 0xdc
mov byte [esp + 0xf9], 0xea
mov byte [esp + 0xfa], 0xea
mov byte [esp + 0xfb], 0xfa
mov byte [esp + 0xfc], 0xe2
mov byte [esp + 0xfd], 0xb5
mov byte [esp + 0xfe], 0xf5
mov byte [esp + 0xff], 0xe3
mov byte [esp + 0x100], 0xf1
mov byte [esp + 0x101], 0xe2
mov byte [esp + 0x102], 0xe1
mov byte [esp + 0x103], 0xd6
mov byte [esp + 0x104], 0x8e
mov byte [esp + 0x105], 0xcc
mov byte [esp + 0x106], 0xcd
mov byte [esp + 0x107], 0x23
mov byte [esp + 0x108], 0x25
mov byte [esp + 0x109], 0xc8
mov byte [esp + 0x10a], 0xde
mov byte [esp + 0x10b], 0xcc
mov byte [esp + 0x10c], 0xd4
mov byte [esp + 0x10d], 0xd8
mov byte [esp + 0x10e], 0xd4
mov byte [esp + 0x10f], 0xd4
mov byte [esp + 0x110], 0xd7
mov byte [esp + 0x111], 0xd7
mov byte [esp + 0x112], 0xc3
mov byte [esp + 0x113], 0xc4
mov byte [esp + 0x114], 0xca
mov byte [esp + 0x115], 0xdc
mov byte [esp + 0x116], 0xcb
mov byte [esp + 0x117], 0xc2
mov byte [esp + 0x118], 0x9a
mov byte [esp + 0x119], 0xff
mov byte [esp + 0x11a], 0xba
mov word [esp + 0x11f], 0
mov dword [esp + 0x11b], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x29
jae 0x40b1ea
jmp 0x40b18e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xf8]
mov edx, eax
add edx, 0x51ddff14
mov esi, ecx
not esi
mov edi, edx
or edi, esi
and edx, ecx
add edx, edi
neg edx
lea eax, [eax + edx + 0x51ddff13]
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x164]
add al, 0x74
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xf8], al
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x29
jb 0x40b18e
jmp 0x40b1ea
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040c670
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
jmp 0x40b20b
cmp eax, 0
je 0x40b4c6
mov al, byte [esp + 0x38]
mov byte [esp + 0x5c], al
mov byte [esp + 0x128], 0x48
mov byte [esp + 0x129], 0x3e
mov byte [esp + 0x12a], 0x85
mov byte [esp + 0x12b], 0x7b
mov byte [esp + 0x12c], 0x69
mov byte [esp + 0x12d], 0x7b
mov byte [esp + 0x12e], 0x44
mov byte [esp + 0x12f], 7
mov dword [esp + 0x130], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0xc
jae 0x40b2dd
jmp 0x40b27a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x128]
add eax, 0x238ca302
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
mov ecx, esi
xor ecx, eax
lea eax, [esi + edx*2]
add edx, ecx
sub eax, edx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x168]
add al, 0xf2
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x128], al
mov eax, dword [esp + 0x24]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xc
jb 0x40b27a
jmp 0x40b2dd
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x128]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040c670
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x140]
cmp eax, 0
setne al
test al, 1
jne 0x40b311
jmp 0x40b4c6
mov eax, dword [esp + 0x140]
mov byte [eax], 0
mov eax, dword [esp + 0x40]
add eax, 0x22
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00409210
mov dword [esp + 0x138], eax
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x138]
jb 0x40b361
mov dword [esp + 0x10], 4
jmp 0x40b3e1
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x28]
mov al, byte [eax + ecx]
mov byte [esp + 0xe], al
movsx eax, byte [esp + 0xe]
cmp eax, 0x61
jl 0x40b3c2
movsx eax, byte [esp + 0xe]
cmp eax, 0x7a
setle al
jmp 0x40b38a
test al, 1
jne 0x40b390
jmp 0x40b3c2
movsx eax, byte [esp + 0xe]
add eax, 0xffffff9e
add eax, 1
add eax, 0xfffffff5
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe6
xor eax, eax
sub eax, ecx
jmp 0x40b3ab
mov ecx, 0x1a
cdq
idiv ecx
jmp 0x40b3b5
xor ecx, ecx
sub ecx, edx
add ecx, 0xffffff9f
xor eax, eax
sub eax, ecx
jmp 0x40b3c6
mov al, byte [esp + 0xe]
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x174], al
mov eax, dword [esp + 0x28]
add eax, 1
mov dword [esp + 0x28], eax
jmp 0x40b347
mov eax, dword [esp + 0x138]
mov byte [esp + eax + 0x174], 0
lea esi, [esp + 0x174]
lea ebx, [esp + 0x1b4]
mov eax, ebx
add eax, 0x80
mov dword [esp + 0x30], eax
mov ecx, esi
mov eax, ecx
mov dl, byte [eax]
add ecx, 1
cmp dl, 0
jne 0x40b40b
sub eax, esi
mov edi, esi
add edi, eax
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffffe
cmp edi, esi
ja 0x40b435
jmp 0x40b488
mov dword [esp + 0x30], eax
jmp 0x40b43b
cmp byte [esi], 0
jne 0x40b444
mov eax, ebx
jmp 0x40b486
lea eax, [esp + 0x148]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0040ed80
add esi, eax
mov cx, word [esp + 0x148]
mov eax, ebx
add eax, 2
mov word [ebx], cx
mov ecx, eax
sub ecx, dword [esp + 0x30]
setb cl
mov edx, esi
sub edx, edi
setb dl
and cl, dl
test cl, 1
mov ebx, eax
jne 0x40b43b
mov ebx, eax
mov word [ebx], 0
lea eax, [esp + 0x1b4]
jmp 0x40b496
mov dword [esp], eax
call fcn.0040b530
jmp 0x40b4a0
test al, 1
jne 0x40b4a6
jmp 0x40b4c4
lea eax, [esp + 0x1b4]
lea ecx, [0x447554]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040bfa0
mov byte [esp + 0x17], 1
jmp 0x40b4c6
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.00437dc0
test byte [esp + 0x17], 1
je 0x40b4e8
mov byte [esp + 0xf], 1
mov dword [esp + 0x10], 1
jmp 0x40b4f2
mov dword [esp + 0x10], 0
jmp 0x40b4f2
cmp dword [esp + 0x10], 0
jne 0x40b50e
jmp 0x40b4fb
mov byte [esp + 0xf], 0
mov dword [esp + 0x10], 1
jmp 0x40b50a
jmp 0x40b50c
jmp 0x40b50e
jmp 0x40b510
jmp 0x40b512
mov al, byte [esp + 0xf]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret