Function at 0x40a990
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, 0xfffffff8
sub esp, 0x198
mov eax, dword [0x43fd10]
mov dword [esp + 0x10], 0x9be39917
mov dword [esp + 0x14], 0x97ee95e2
mov dword [esp + 0x18], 0x931e911c
mov dword [esp + 0x1c], 0xaf98addc
mov dword [esp + 0x20], 0xabdea9d4
mov dword [esp + 0x24], 0xa7a6a5d0
mov word [esp + 0x28], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x19
ja 0x40aa31
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
mov esi, 0xeb
sub esi, ecx
add ecx, 0x506afc14
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x114], esi
mov ecx, dword [esp + 0x114]
add cl, 0x74
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1a
jb 0x40a9f0
lea edi, [esp + 0x10]
push 0x800
push 0
push edi
call eax
mov ecx, 0x43fcd8
push eax
call fcn.00433840
xor ebx, ebx
test al, al
je 0x40b0f8
push 0xd16c9e6b
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fce0], eax
push 0x2b39326b
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fce4], eax
push 0x20eddf4
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fce8], eax
push 0x6f420210
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fcec], eax
push 0xbb4ac2a9
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fcf0], eax
push 0xe03c21ff
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fcf4], eax
push 0xb35fc6e6
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fcf8], eax
push 0xe3a9b6db
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fcfc], eax
push 0xe81e9fc0
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fd00], eax
push 0x70f53c13
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fd04], eax
push 0xb54b293a
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fd08], eax
push 0x9b73555b
push dword [0x43fcd8]
call fcn.00435820
add esp, 8
mov dword [0x43fd0c], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x114]
push eax
push dword [ebx + 0x4395ec]
call fcn.0042fbc0
add esp, 8
lea esi, [esp + 0x113]
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x40aba0
mov dword [esp], 0
mov eax, edi
lea ecx, [esp + 0x114]
cmp ecx, esi
jae 0x40ac1e
mov dword [esp + 4], ebx
xor ebx, ebx
lea edi, [esp + 0x114]
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40ac10
mov eax, esp
push eax
push esi
push edi
call fcn.0040d1a0
add esp, 0xc
movzx edx, word [esp]
lea ecx, [ebx + 2]
mov word [esp + ebx + 0x10], dx
cmp ebx, 0xfb
ja 0x40abfe
add edi, eax
mov ebx, ecx
cmp edi, esi
jb 0x40abd0
lea eax, [esp + ecx]
add eax, 0x10
jmp 0x40ac16
lea eax, [esp + ebx]
add eax, 0x10
mov ebx, dword [esp + 4]
lea edi, [esp + 0x10]
mov word [eax], 0
push edi
call fcn.0040b110
add esp, 4
test al, al
jne 0x40aeb4
add ebx, 4
cmp ebx, 0x24
jne 0x40ab80
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessVersion]
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0xdb56d940
mov dword [esp + 0x14], 0xd746d558
mov dword [esp + 0x18], 0xd318d143
mov dword [esp + 0x1c], 0xcf19cd1b
mov dword [esp + 0x20], 0xcb46c95b
mov dword [esp + 0x24], 0xc767c559
mov dword [esp + 0x28], 0xc361c155
mov dword [esp + 0x2c], 0xbf2bbd2b
mov dword [esp + 0x30], 0xbb37b92d
mov dword [esp + 0x34], 0xb72fb522
mov dword [esp + 0x38], 0xb33bb13c
mov dword [esp + 0x3c], 0xaf0dad7a
mov dword [esp + 0x40], 0xab3fa93f
mov dword [esp + 0x44], 0xa736a573
mov dword [esp + 0x48], 0xa335a132
mov dword [esp + 0x4c], 0x9f079d02
mov dword [esp + 0x50], 0x9b07990c
mov dword [esp + 0x54], 0x97419507
mov dword [esp + 0x58], 0x935c915f
mov dword [esp + 0x5c], 0x8f408d41
mov dword [esp + 0x60], 0x8b5b8959
mov dword [esp + 0x64], 0x874f854d
mov dword [esp + 0x68], 0x8350814f
mov dword [esp + 0x6c], 0x7fad7db0
mov dword [esp + 0x70], 0x7bab79ab
mov dword [esp + 0x74], 0x77a675bd
mov dword [esp + 0x78], 0x737271a0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x77
ja 0x40ad9f
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, 0x5b
sub edx, eax
add eax, 0xcb6caca4
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x114], edx
mov eax, dword [esp + 0x114]
add al, 0x84
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x78
jb 0x40ad60
lea eax, [esp + 0xc]
lea ecx, [esp + 8]
lea edi, [esp + 0x10]
push eax
push ecx
push edi
call fcn.0040b7a0
add esp, 0xc
test al, al
je 0x40aeed
mov dword [esp + 0x10], 0x2cc4c01a
mov dword [esp + 0x14], 0xd32d69d8
mov dword [esp + 0x18], 0xd9d829
mov dword [esp + 0x1c], 0xd3252664
mov dword [esp + 0x20], 0x1ad822cd
mov dword [esp + 0x24], 0xeaeee2ea
mov dword [esp + 0x28], 0x121befef
mov dword [esp + 0x2c], 0xece316e0
mov word [esp + 0x30], 0x3750
mov byte [esp + 0x32], 0x74
mov dword [esp + 0x37], 0
mov dword [esp + 0x33], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2a
ja 0x40ae6f
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, 0x32
sub edx, eax
add eax, 0x607a64cd
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x114], edx
mov eax, dword [esp + 0x114]
add al, 0x65
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2b
jb 0x40ae30
mov ecx, dword [esp + 8]
movzx ebx, byte [esp + 0x10]
test bl, bl
je 0x40aef4
mov edx, edi
mov esi, ecx
jmp 0x40ae97
movzx ebx, byte [edx]
test bl, bl
je 0x40aef6
mov bh, byte [ecx]
test bh, bh
je 0x40b0ea
inc ecx
inc edx
lea eax, [esi + 1]
cmp bh, bl
je 0x40aeae
mov esi, eax
mov ecx, eax
je 0x40ae90
mov edx, edi
jmp 0x40ae90
movzx ecx, word [esp + 0x10]
mov eax, 0x43fd14
test cx, cx
je 0x40aee1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40aed0
mov word [eax], 0
mov bl, 1
jmp 0x40b0f8
xor ebx, ebx
jmp 0x40b0f8
mov esi, ecx
test esi, esi
je 0x40b0ea
mov dword [esp + 0x10], 0x2b2d686a
mov dword [esp + 0x14], 0xbf625359
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x40af6f
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, 0x98
sub edx, eax
add eax, 0x7703fb67
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x114], edx
mov eax, dword [esp + 0x114]
add al, 0x2f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x40af30
movzx ebx, byte [esp + 0x10]
mov dword [esp + 4], esi
mov ecx, esi
test bl, bl
je 0x40afb4
lea edx, [esp + 0x10]
mov esi, edx
mov ecx, dword [esp + 4]
mov edi, ecx
jmp 0x40af97
movzx ebx, byte [esi]
test bl, bl
je 0x40afb4
mov bh, byte [edi]
test bh, bh
je 0x40b0ea
inc edi
inc esi
lea eax, [ecx + 1]
cmp bh, bl
je 0x40afae
mov ecx, eax
mov edi, eax
je 0x40af90
mov esi, edx
jmp 0x40af90
test ecx, ecx
je 0x40b0ea
mov byte [ecx], 0
mov ecx, 0xffffffff
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + ecx + 0x23], 0
lea ecx, [ecx + 1]
jne 0x40afd0
test ecx, ecx
je 0x40b031
xor edx, edx
jmp 0x40b00b
mov eax, esi
xor eax, 0x61
and esi, 1
lea ebx, [eax + esi*2]
mov esi, dword [esp + 4]
mov byte [esp + edx + 0x114], bl
inc edx
cmp ecx, edx
je 0x40b031
movzx ebx, byte [esi + edx + 0x22]
mov eax, ebx
add al, 0x9f
cmp al, 0x19
ja 0x40afff
movzx esi, al
mov eax, esi
not eax
and esi, 0x14
and eax, 0xb
sub esi, eax
cmp esi, 0xffffffe6
jb 0x40aff0
add esi, 0x1a
jmp 0x40aff0
mov byte [esp + ecx + 0x114], 0
lea ebx, [esp + 0x113]
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x40b040
mov dword [esp], 0
lea ecx, [esp + 0x10]
lea esi, [esp + 0x114]
mov eax, ecx
cmp esi, ebx
jae 0x40b0a0
xor edi, edi
cmp byte [esi], 0
je 0x40b096
mov eax, esp
push eax
push ebx
push esi
call fcn.0040d1a0
add esp, 0xc
movzx edx, word [esp]
lea ecx, [edi + 2]
mov word [esp + edi + 0x10], dx
cmp edi, 0x7b
ja 0x40b08e
add esi, eax
mov edi, ecx
cmp esi, ebx
jb 0x40b063
lea eax, [esp + ecx]
add eax, 0x10
jmp 0x40b09c
lea eax, [esp + edi]
add eax, 0x10
lea ecx, [esp + 0x10]
mov word [eax], 0
push ecx
call fcn.0040b110
add esp, 4
test al, al
je 0x40b0ea
movzx ecx, word [esp + 0x10]
mov eax, 0x43fd14
test cx, cx
je 0x40b0e1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40b0d0
mov word [eax], 0
mov bl, 1
jmp 0x40b0ec
xor ebx, ebx
push dword [esp + 8]
call fcn.00432560
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret