Function at 0x40cf80
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, 0x258
mov dword [esp + 0x50], 0xb325b505
mov dword [esp + 0x54], 0xaf27b134
mov dword [esp + 0x58], 0xab38ad3a
mov dword [esp + 0x5c], 0xa779a935
mov dword [esp + 0x60], 0xa376a56d
mov dword [esp + 0x64], 0x9f40a172
mov dword [esp + 0x68], 0x9b359d46
mov dword [esp + 0x6c], 0x970a990d
mov dword [esp + 0x70], 0x9305950a
mov dword [esp + 0x74], 0x8f1d911b
mov dword [esp + 0x78], 0x8b3e8d6e
mov dword [esp + 0x7c], 0x87688926
mov dword [esp + 0x80], 0x83548549
mov dword [esp + 0x84], 0x7f508150
mov dword [esp + 0x88], 0x7b9c7dbb
mov dword [esp + 0x8c], 0x77ef79d3
mov dword [esp + 0x90], 0x73be75e4
mov dword [esp + 0x94], 0x6fb571be
mov dword [esp + 0x98], 0x6be46d8e
mov dword [esp + 0x9c], 0x67a469a0
mov dword [esp + 0xa0], 0x638465b1
mov dword [esp + 0xa4], 0x5ff061dd
mov dword [esp + 0xa8], 0x5bc85dce
mov dword [esp + 0xac], 0x57f159c1
mov dword [esp + 0xb0], 0x53ca55cd
mov dword [esp + 0xb4], 0x4fc751e7
mov dword [esp + 0xb8], 0x4b9d4dc2
mov dword [esp + 0xbc], 0x47854981
mov dword [esp + 0xc0], 0x4396458f
mov dword [esp + 0xc4], 0x3f8a418f
mov dword [esp + 0xc8], 0x3be43dde
mov dword [esp + 0xcc], 0x3780398f
mov dword [esp + 0xd0], 0x3387359a
mov dword [esp + 0xd4], 0x2fe43186
mov dword [esp + 0xd8], 0x2bb82dce
mov dword [esp + 0xdc], 0x27bd29bd
mov dword [esp + 0xe0], 0x23c425bd
mov dword [esp + 0xe4], 0x1fbb219b
mov dword [esp + 0xe8], 0x1b891d83
mov dword [esp + 0xec], 0x17cf198b
mov dword [esp + 0xf0], 0x13a915f6
mov dword [esp + 0xf4], 0xf9e118a
mov dword [esp + 0xf8], 0xb9f0d9f
mov dword [esp + 0xfc], 0x7d90991
mov dword [esp + 0x100], 0x3cb05c9
mov dword [esp + 0x104], 0xffd201c5
mov dword [esp + 0x108], 0xfb2efd2e
mov dword [esp + 0x10c], 0xf72af92a
mov dword [esp + 0x110], 0xf314f526
mov dword [esp + 0x114], 0xef6ff15f
mov dword [esp + 0x118], 0xeb73ed74
mov dword [esp + 0x11c], 0xe77fe964
mov dword [esp + 0x120], 0xe32fe537
mov dword [esp + 0x124], 0xdf29e12f
mov dword [esp + 0x128], 0xdb11dd0c
mov dword [esp + 0x12c], 0xd7d8d910
mov dword [esp + 0x134], 0
mov dword [esp + 0x130], 0
mov eax, dword [0x44c2e0]
mov dword [esp + 0xc], eax
mov ecx, 0xfffffffe
xor edx, edx
xor eax, eax
nop
nop
nop
nop
nop
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
movzx ebx, byte [esp + eax + 0x50]
lea eax, [ecx + 1]
mov edx, dword [esp + 8]
and edx, 0x92
mov ecx, dword [esp + 4]
lea ecx, [ecx*2 + 2]
not ecx
mov esi, dword [esp + 4]
add esi, ecx
inc esi
or esi, 0xfbbc1ab6
or eax, 0xfbbc1ab6
mov ecx, dword [esp + 4]
sub ecx, eax
and ecx, esi
mov edi, ecx
not edi
add edi, edx
mov eax, edi
mov esi, ebx
mov dword [esp + 0x14], ebx
and eax, ebx
add ebx, ebx
not ebx
add ebx, esi
mov esi, ecx
sub esi, edx
mov dword [esp + 0x10], esi
and ebx, esi
mov esi, ebx
not esi
and esi, eax
xor ebx, eax
add ebx, eax
sub ebx, esi
mov eax, ebx
not eax
mov esi, eax
and esi, 2
or eax, 2
imul eax, esi
add eax, ebx
mov esi, ebx
and ebx, 2
or esi, 2
inc esi
imul esi, ebx
sub esi, eax
sub edx, ecx
add esi, 0xfffffffe
or esi, dword [esp + 0x10]
add esi, edx
mov edx, dword [esp + 8]
mov ecx, esi
or ecx, 0xfffffffd
inc ecx
mov eax, esi
and eax, 0xfffffffd
imul eax, ecx
mov ecx, esi
and ecx, 2
or esi, 2
imul esi, ecx
mov ecx, dword [esp + 4]
sub eax, esi
add edi, dword [esp + 0x14]
add edi, eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x18]
inc al
mov esi, dword [esp]
mov byte [esp + esi + 0x50], al
mov eax, dword [esp]
inc eax
dec ecx
add edx, 2
cmp eax, 0xe8
jne case.default.0x40d301
lea eax, [esp + 0x50]
push 0
push 0
push 0
push 0
push eax
call dword [esp + 0x20]
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x446f2c]
xor ebx, ebx
jmp 0x40d54e
jmp dword [0x446f34]
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push esi
push dword [ebp + 0x18]
push edi
call dword [0x44c308]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x446f9c]
push 0
push edi
call dword [0x44c2fc]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x446fa4]
mov bl, 1
mov eax, dword [case.0x40d301.25]
nop
nop
nop
jmp eax
jmp dword [0x446f60]
xor eax, eax
mov ecx, dword [ebp + 0x20]
test ecx, ecx
setg al
jmp dword [eax*4 + 0x446f74]
push ecx
push ecx
push ecx
push ecx
push edi
call dword [0x44c2f0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x446f84]
movzx eax, byte [0x44c418]
mov esi, dword [ebp + 0x1c]
jmp dword [eax*4 + 0x446f8c]
mov dword [esp], edi
mov dword [esp + 0x18], 0x1b8d195b
mov dword [esp + 0x1c], 0x178d1583
mov dword [esp + 0x20], 0x138f1189
mov dword [esp + 0x24], 0xf2e0d46
mov dword [esp + 0x28], 0xb6d096f
mov dword [esp + 0x2c], 0x7980567
mov dword [esp + 0x30], 0x3970167
mov dword [esp + 0x34], 0x3f593db3
mov dword [esp + 0x38], 0x3bb3395a
mov dword [esp + 0x3c], 0x377335a4
mov word [esp + 0x40], 0x3130
mov dword [esp + 0x42], 0
mov dword [esp + 0x45], 0
mov eax, 0x84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x6c]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
add ecx, 0xf1330600
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
mov edx, ecx
xor edx, 0x98652d9c
mov edi, ecx
and edi, 0x679ad263
mov ebx, ecx
xor ebx, 0x18652d9c
or ecx, 0x679ad263
and ecx, ebx
or ecx, edi
lea edi, [ecx + ecx]
mov ebx, edi
xor edi, edx
lea esi, [edx + edx]
not esi
add esi, edx
not ebx
or esi, ebx
lea ecx, [esi + ecx*2]
add ecx, ecx
sub ecx, edi
add cl, 2
mov byte [esp + eax - 0x6c], cl
inc eax
cmp eax, 0xb5
jne 0x40d430
movzx eax, word [esp + 0x18]
test ax, ax
lea edx, [esp + 0x50]
je 0x40d4c1
lea edx, [esp + 0x50]
lea ecx, [esp + 0x1a]
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d4b0
mov word [edx], 0
movzx eax, word [0x44c41a]
test ax, ax
mov edi, dword [esp]
je 0x40d4f7
xor ecx, ecx
mov esi, dword [ebp + 0x1c]
nop
nop
nop
nop
nop
nop
mov word [edx + ecx], ax
movzx eax, word [ecx + 0x44c41c]
add ecx, 2
test ax, ax
jne 0x40d4e0
add edx, ecx
jmp 0x40d4fa
mov esi, dword [ebp + 0x1c]
mov word [edx], 0
lea eax, [esp + 0x50]
push 0x20000000
push 0xffffffffffffffff
push eax
push edi
call dword [0x44c2f4]
xor ebx, ebx
mov ecx, dword [ebp + 0xc]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push ecx
push edi
call dword [0x44c2f8]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446f94]
push edi
call dword [0x44c30c]
jmp 0x40d69c
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
push esi
call dword [0x44c30c]
jmp 0x40d54e
push 0
push 0x1bb
push 0x44c314
push esi
call dword [0x44c2e4]
push 0
push 0x1bb
push 0x44c314
push esi
call dword [0x44c2e4]
jmp dword [0x446f40]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446f44]
mov dword [esp + 8], esi
mov ecx, dword [0x44c2e8]
mov dword [esp], ecx
mov dword [esp + 0x50], 0x4ba555a6
mov dword [esp + 0x54], 0x4fbc49bf
mov word [esp + 0x58], 0x4d4e
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov ecx, 0x3750d78d
mov edi, 0xc8af2872
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edi
and esi, 0xc80c0064
mov edx, ecx
and edx, 0x650001b
or edx, esi
mov esi, edx
xor esi, 0x2b3281b
xor edx, 0x8a5200b
and edx, esi
mov esi, edi
or esi, 0xe3b9726f
lea ebx, [esi + esi]
not ebx
add ebx, esi
mov esi, ecx
and esi, 0x14408590
or ebx, esi
movzx esi, byte [esp + ecx - 0x3750d73d]
or ebx, edx
xor ebx, esi
xor ebx, 0xe3b9726f
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x18]
mov esi, edx
not esi
or esi, 0x24
add esi, edx
mov ebx, edx
and ebx, 0x5b
add ebx, ebx
sub ebx, edx
lea edx, [ebx + esi*2]
add dl, 0x27
mov byte [esp + ecx - 0x3750d73d], dl
inc ecx
dec edi
cmp ecx, 0x3750d7a3
jne 0x40d5f0
push 0x800000
push 0
push 0
push 0
push dword [ebp + 8]
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x1c], eax
push eax
call dword [esp + 0x1c]
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x446f4c]
xor ebx, ebx
mov esi, dword [esp + 8]
push dword [esp + 4]
call dword [0x44c30c]
jmp 0x40d55a
add dl, dh
int3
rol dword [eax], cl
psrlq mm0, qword [eax]
jbe 4484875
inc eax
add byte [ebx - 0x2b], ah
inc eax
add byte [ebx - 0x2b], ah
inc eax
add byte [edi + 0x580040d5], cl
aad 0x40
add byte [ebp - 0x65ffbf2b], bl
salc
inc eax
add byte [eax - 0x2d], dh
inc eax
add byte [eax - 0x2d], dh
inc eax
add byte [eax - 0x2d], dh
inc eax
add byte [eax - 0x2d], dh
inc eax
add byte [esi - 0x2d], dh
inc eax
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi - 0x2d], dh
inc eax
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x78ffbf2d], ah
rol dword [eax], cl
mov al, byte [0xa00040d3]
rol dword [eax], cl
cmpsb byte [esi], byte es:[edi]
rol dword [eax], cl
mov al, byte [0x120040d3]
aad 64
add byte [edi + 0x420040d3], dh
aad 0x40
add byte [0x580040d3], dl
rol dword [eax], cl
cmp eax, 0x580040d3
rol dword [eax], cl
push esi
rol dword [eax], cl
pushal
rol dword [eax], cl
pushal
rol dword [eax], cl
pushal
rol dword [eax], cl
inc edx
aad 64
add byte [eax], al
add byte [eax], al
add byte [eax], ah
fadd dword [eax]
xor bl, ah
inc eax
add byte [ebp + ebx*8 - 0x226dffc0], ch
inc eax
add byte [ebp + 0x1d0040dd], ah
fiadd word [eax]
xor esi, ebx
inc eax
add byte [edi + 0x400040ed], al
fiadd word [eax]
inc edx
fiadd word [eax]
inc edx
fiadd word [eax]
push edi
fild word [eax]
xchg ebp, ebp
inc eax
add byte [esi - 0x14], bh
inc eax
add byte [esi - 0x21], ah
inc eax
add byte [edx], dl
loope 0x44703f
add byte [edi - 0x1f], dh
inc eax
add dh, ch
loope 0x447047
add bh, dh
loope 0x44704b
add byte [edi - 0x21ffbf13], al
in al, 0x40
add cl, ch
in al, 0x40
add byte [eax - 0x3effbf1a], al
out 0x40, al
add byte [esi + 0x10040e6], ch
add byte [eax], al
add byte [esi + 0x200040e6], ch
out 0x40, eax
add byte [ecx], bh
out 0x40, eax
add byte [edx - 0x19], al
inc eax
add byte [edi + 0x40], dl
add byte [ecx - 0x18], bl
inc eax
add byte [eax - 0x18], dh
inc eax
add byte [eax - 0x7fffbf18], al
call 0xe8d2708e
inc eax
add byte [eax - 0x17], ah
add byte [eax - 0x71ffbf18], al
call 0xe9a47092
add byte [esi + 0x600040e8], cl
jmp 0xe9a47096
inc eax
add byte [eax - 0x17], ah
inc eax
add byte [eax - 0x17], ah
inc eax
add byte [eax - 0x17], ah
inc eax
add byte [esi - 0x17], ah
inc eax
add byte [esi - 0x17], dh
inc eax
add byte [edi - 0x78ffbf13], al
in eax, dx
inc eax
add byte [esi - 0x71ffbf17], cl
in al, dx
inc eax
add byte [ecx - 0x14], bh
inc eax
add byte [edx - 0x13], cl
inc eax
add byte [edx - 0x13], cl
inc eax
add byte [ebp - 0x5affbf23], ah
fld qword [eax]
movsd dword es:[edi], dword [esi]
fld qword [eax]
movsd dword es:[edi], dword [esi]
fld qword [eax]
jg 0x447083
inc eax
add byte [edi - 0x13], bh
inc eax
add byte [eax - 0x22], al
inc eax
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x18], ah
inc eax
add byte [eax - 0x17], ah
inc eax
add byte [edx + eax*2 + 0x41], ah
add byte [edx + eax*2 + 0x41], ah
add byte [edx + eax*2 + 0x41], ah
add cl, al
out dx, eax
inc eax
add cl, al
out dx, eax
inc eax
add byte [ebp + 0x42], dl
inc ecx
add byte [ebp + 0x42], dl
inc ecx
add byte [eax + 0x42], ah
inc ecx
add byte [edx + eax*2 + 0x41], ah
add byte [edx + eax*2 + 0x41], ah
add byte [eax], ah
invalid