Function at 0x410500
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x23c
mov eax, dword [0x44dde0]
mov dword [esp + 0x3c], 0x63fd61dd
mov dword [esp + 0x40], 0x67ff65ee
mov dword [esp + 0x44], 0x5bc659c4
mov dword [esp + 0x48], 0x5f815dfd
mov dword [esp + 0x4c], 0x538c5185
mov dword [esp + 0x50], 0x57b65584
mov dword [esp + 0x54], 0x4bfd4990
mov dword [esp + 0x58], 0x4fd04dd5
mov dword [esp + 0x5c], 0x43dd41e4
mov dword [esp + 0x60], 0x47d545d3
mov dword [esp + 0x64], 0x3b8439d8
mov dword [esp + 0x68], 0x3fde3d88
mov dword [esp + 0x6c], 0x33e231e1
mov dword [esp + 0x70], 0x37e635ea
mov dword [esp + 0x74], 0x2bca29e3
mov dword [esp + 0x78], 0x2fb72d9b
mov dword [esp + 0x7c], 0x23f421be
mov dword [esp + 0x80], 0x27ed25f0
mov dword [esp + 0x84], 0x1b9219f8
mov dword [esp + 0x88], 0x1fca1dca
mov dword [esp + 0x8c], 0x13f211c9
mov dword [esp + 0x90], 0x178615d5
mov dword [esp + 0x94], 0xb960998
mov dword [esp + 0x98], 0xfb90da9
mov dword [esp + 0x9c], 0x3a001a5
mov dword [esp + 0xa0], 0x79f05bf
mov dword [esp + 0xa4], 0xfb25f96c
mov dword [esp + 0xa8], 0xff2dfd29
mov dword [esp + 0xac], 0xf32cf127
mov dword [esp + 0xb0], 0xf720f527
mov dword [esp + 0xb4], 0xeb32e908
mov dword [esp + 0xb8], 0xef56ed57
mov dword [esp + 0xbc], 0xe35fe154
mov dword [esp + 0xc0], 0xe73ae558
mov dword [esp + 0xc4], 0xdb46d938
mov dword [esp + 0xc8], 0xdf45dd45
mov dword [esp + 0xcc], 0xd332d175
mov dword [esp + 0xd0], 0xd773d513
mov dword [esp + 0xd4], 0xcb51c96b
mov dword [esp + 0xd8], 0xcf17cd53
mov dword [esp + 0xdc], 0xc301c120
mov dword [esp + 0xe0], 0xc754c55c
mov dword [esp + 0xe4], 0xbb27b927
mov dword [esp + 0xe8], 0xbf61bd19
mov dword [esp + 0xec], 0xb363b161
mov dword [esp + 0xf0], 0xb768b57d
mov dword [esp + 0xf4], 0xab74a978
mov dword [esp + 0xf8], 0xaf70ad7c
mov dword [esp + 0xfc], 0xa342a170
mov dword [esp + 0x100], 0xa707a517
mov dword [esp + 0x104], 0x9b3b993e
mov dword [esp + 0x108], 0x9f079d0e
mov dword [esp + 0x10c], 0x9347914f
mov dword [esp + 0x110], 0x97419547
mov dword [esp + 0x114], 0x8b598956
mov dword [esp + 0x118], 0x8f8e8d5a
mov byte [esp + 0x11c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe0
ja 0x41079e
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
mov esi, ecx
xor esi, 0x8abdaf18
and ecx, 0xabdaf18
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x88
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe1
jb 0x410760
lea esi, [esp + 0x3c]
push 0
push 0
push 0
push 0
push esi
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x448e58]
xor ebx, ebx
jmp 0x410c5a
mov eax, dword [0x44dde4]
mov dword [esp], 0x979698df
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 3
ja 0x410843
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx]
mov edi, ecx
xor edi, 0x673bd766
and ecx, 0xe73bd766
lea edi, [edi + ecx*2]
mov ecx, edi
and ecx, edx
xor edi, edx
lea edx, [edi + ecx*2]
mov edi, edx
not edi
and edi, ecx
add edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 2
mov edx, dword [esp + 8]
mov byte [esp + edx], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 4
jb 0x4107f0
movzx ecx, word [esp]
push 0
push ecx
push 0x44de14
push ebp
call eax
mov edi, eax
xor eax, eax
test edi, edi
setne al
xor ebx, ebx
jmp dword [eax*4 + 0x448e60]
mov eax, dword [0x44dde8]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0xf372f1f0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 3
ja 0x4108d0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 4]
mov ebx, ecx
xor ebx, 0x146fe5ac
and ecx, 0x146fe5ac
lea ecx, [ebx + ecx*2]
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 0xa4
mov edx, dword [esp + 8]
mov byte [esp + edx + 4], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 4
jb 0x410890
mov dword [esp + 0x34], ebp
mov edx, dword [esp + 4]
mov dword [esp + 0x3c], 0x790b7b0c
mov dword [esp + 0x40], 0x651a6705
mov word [esp + 0x44], 0x6364
mov dword [esp + 0x46], 0
mov dword [esp], 0
mov ebx, dword [esp]
cmp ebx, 0xd
ja 0x410953
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp]
mov ebp, dword [esp]
movzx ebp, byte [esp + ebp + 0x3c]
mov ecx, ebx
xor ecx, 0x9cce15eb
mov eax, ebx
xor eax, 0x6331ea14
or ebx, 0x1cce15eb
and ebx, eax
lea eax, [ecx + ebx*2]
xor eax, ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x69
mov ecx, dword [esp]
mov byte [esp + ecx + 0x3c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x410910
push edx
push 0
push 0
push 0
push dword [esp + 0x260]
push esi
push edi
call dword [esp + 0x54]
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x448e68]
xor ebx, ebx
mov ebp, dword [esp + 0x34]
jmp dword [0x448ecc]
mov eax, dword [esp + 0x268]
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x448e70]
movzx eax, byte [0x44df18]
jmp dword [eax*4 + 0x448e88]
push eax
push eax
push eax
push eax
push ebp
call dword [0x44ddf0]
movzx eax, byte [0x44df18]
jmp dword [eax*4 + 0x448e88]
mov dword [esp + 8], 0x77c579a7
mov dword [esp + 0xc], 0x73c575c7
mov dword [esp + 0x10], 0x4ff371c9
mov dword [esp + 0x14], 0x4baa4d8a
mov dword [esp + 0x18], 0x47e549eb
mov dword [esp + 0x1c], 0x43f845fb
mov dword [esp + 0x20], 0x5feb41e3
mov dword [esp + 0x24], 0x5bf95dd7
mov dword [esp + 0x28], 0x57df59e6
mov dword [esp + 0x2c], 0x539755e4
mov dword [esp + 0x30], 0x5150
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2b
ja 0x410a7f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 8]
mov edx, ecx
or edx, 0x11a4e5e9
mov ebx, ecx
not ebx
or ebx, 0xee5b1a16
and ebx, edx
not ebx
and ecx, 0xee5b1a16
lea ecx, [ebx + ecx*2]
lea edx, [ecx + eax]
and ecx, eax
add ecx, ecx
sub edx, ecx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x3c]
add al, 0x92
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2c
jb 0x410a30
movzx eax, word [esp + 8]
test ax, ax
je 0x410ab1
lea esi, [esp + 0x3c]
lea ecx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410aa0
mov word [esi], 0
movzx eax, word [0x44df1a]
test ax, ax
je 0x410ae5
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi + ecx], ax
movzx eax, word [ecx + 0x44df1c]
add ecx, 2
test ax, ax
jne 0x410ad0
add esi, ecx
mov word [esi], 0
mov eax, dword [0x44ddf4]
mov dword [esp + 8], 0xf19e9f9c
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 6
ja 0x410b6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
mov esi, ecx
xor esi, 0x70eaea5
add ecx, ecx
and ecx, 0xe1d5d4a
mov ebx, ecx
and ebx, esi
xor ecx, esi
lea ecx, [ecx + ebx*2]
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
xor edx, 0x39
and ecx, 0x46
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 7
jb 0x410b20
lea ecx, [esp + 0x3c]
push dword [esp + 8]
push 0xffffffffffffffff
push ecx
push ebp
call eax
xor ebx, ebx
mov ecx, dword [esp + 0x254]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
push dword [esp + 0x268]
push dword [esp + 0x264]
push dword [esp + 0x264]
push eax
push ecx
push ebp
call dword [0x44ddf8]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x448e90]
mov esi, dword [esp + 0x260]
mov ebx, dword [esp + 0x264]
jmp dword [0x448e98]
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x3c]
push eax
push ebx
push esi
push ebp
call dword [0x44de08]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x3c]
push eax
push ebx
push esi
push ebp
call dword [0x44de08]
jmp dword [0x448ea0]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x448ea8]
push 0
push ebp
call dword [0x44ddfc]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x448eb0]
mov bl, 1
mov eax, dword [case.0x410bb8.0]
nop
nop
nop
nop
jmp eax
push ebp
call dword [0x44de0c]
mov ebp, dword [esp + 0x34]
jmp dword [0x448ecc]
push ebp
call dword [0x44de0c]
mov eax, dword [case.0x4107b6.34]
nop
jmp eax
mov eax, ebx
add esp, 0x23c
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call dword [0x44de0c]
push edi
call dword [0x44de0c]
jmp dword [0x448ed4]
pop es
inc ecx
add ah, al
pop es
inc ecx
add byte [ebx + 0xc], dl
inc ecx
add byte [eax + ecx + 0x41], ah
add byte [edi + 9], dh
or dword [ecx], eax
or dword [ecx], 0x41
add byte [eax - 1509932791], bl
or dword [ecx], eax
or dword [ecx], 0x41
add byte [eax - 1509932791], bl
or dword [ecx], eax
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
cwde
or dword [ecx], eax
jge 0x448e95
inc ecx
add byte [edi + 0x42004109], bh
or al, 0x41
add byte [edi - 0xfffbef5], bh
or eax, dword [ecx]
or eax, dword [ecx]
lock or eax, dword [ecx]
ror dword [ebx], cl
inc ecx
add byte [esp + ecx], cl
inc ecx
add al, dh
or eax, dword [ecx]
aaa
or al, 65
add byte [esp + ecx], bl
inc ecx
add byte [edi], dh
or al, 0x41
add byte [0x4000410c], dh
or al, 0x41
add byte [eax + 0xc], al
inc ecx
add byte [eax + 0xc], al
inc ecx
add byte [edx + 0xc], al
inc ecx
add byte [edi + 0xc], ch
inc ecx
add byte [esi + 0xc], dh
inc ecx
add byte [edi + 0xc], ch
inc ecx
add byte [ebx + 0xc], dl
inc ecx
add byte [eax + 0xc], ah
inc ecx
add byte [eax + 0xc], ah
inc ecx
add byte [edx + 0xc], ah
inc ecx
add byte [eax + 0xc], ah
inc ecx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], ah
push cs
inc ecx
add byte [ebp + 0x400410e], ch
adc eax, dword [ecx]
test dword [esi], 0x201d0041
inc ecx
add byte [0xfe004120], bl
adc al, byte [ecx]
sbb dword [edi], ecx
inc ecx
add byte [esi], cl
adc eax, dword [ecx]
ljmp 0