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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov dword [esp + 8], 0x3ef6e2e1
mov dword [esp + 0xc], 0xe2e0ece8
lea ebx, [esp + 0x10]
mov byte [esp + 0x10], 8
mov word [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov eax, 0x34b22541
mov ecx, 0xbf
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x34b22539]
mov edi, esi
not edi
or edi, ecx
lea ebp, [eax + edi]
add esi, edi
inc esi
or esi, ebp
lea edi, [esi + 0xbf]
mov ebp, esi
not ebp
and ebp, 1
and esi, 1
and edi, 0xfe
or edi, esi
lea edx, [edi + ebp*2]
mov byte [esp + eax - 0x34b22539], dl
inc eax
dec ecx
cmp eax, 0x34b2254d
jne 0x40f4c0
lea eax, [esp + 0x7f]
lea edx, [esp + 8]
mov ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x87]
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x87], cl
mov dword [esp + 8], 0x97059927
mov dword [esp + 0xc], 0x931e9506
mov dword [esp + 0x10], 0x8f1c910d
mov dword [esp + 0x14], 0x8b5f8d00
mov dword [esp + 0x18], 0x870f8924
mov dword [esp + 0x1c], 0x831f8514
mov dword [esp + 0x20], 0x7f9e8146
mov dword [esp + 0x24], 0x7bea7ddd
mov dword [esp + 0x28], 0x77e279e8
mov dword [esp + 0x2c], 0x73ed75ed
mov dword [esp + 0x30], 0x6fe271d1
mov dword [esp + 0x34], 0x6bf96df5
mov dword [esp + 0x38], 0x67b569fa
mov dword [esp + 0x3c], 0x63b765ec
mov dword [esp + 0x40], 0x5fd561eb
mov dword [esp + 0x44], 0x5b8f5dd7
mov dword [esp + 0x48], 0x57c559c2
mov dword [esp + 0x4c], 0x53c755da
mov dword [esp + 0x50], 0x4fc35185
mov dword [esp + 0x54], 0x4bde4dc2
mov dword [esp + 0x58], 0x47d449d5
mov dword [esp + 0x5c], 0x43d145db
mov dword [esp + 0x60], 0x3fa341dc
mov dword [esp + 0x64], 0x3bcf3da0
mov dword [esp + 0x68], 0x373639ce
mov ecx, 0xe6
mov edi, 0x19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0xde]
mov ebx, edi
xor ebx, ecx
and ebx, edx
xor ebx, ecx
add bl, 0x82
mov byte [esp + ecx - 0xde], bl
inc ecx
dec edi
cmp ecx, 0x14a
jne 0x40f610
mov dword [esp + 0x70], 0x8f2f897b
mov dword [esp + 0x74], 0x833b8d3c
mov dword [esp + 0x78], 0x8180
mov ecx, 0x476e5e2
mov edi, 0xb891a1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x476e572]
lea ebp, [edx + edx]
not ebp
add ebp, edx
and ebp, ecx
mov ebx, edi
or ebx, edx
lea esi, [edi - 0xb891a00]
and esi, edx
not ebx
or ebx, esi
or ebx, ebp
add ebx, 0x86368028
mov edx, ebx
xor edx, 0x92
and ebx, 0x6d
add ebx, ebx
sub ebx, edx
mov byte [esp + ecx - 0x476e572], bl
inc ecx
dec edi
cmp ecx, 0x476e5ee
jne 0x40f660
lea ecx, [esp + 4]
lea edx, [esp + 0x70]
push 0
push ecx
push 8
push eax
lea eax, [esp + 0x18]
push eax
push edx
push dword [esp + 0xb4]
call fcn.00410010
add esp, 0x1c
test al, al
je 0x40f804
mov dword [esp + 8], 0x6a0615
mov eax, 0xab2567
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xab255f]
mov edx, ecx
xor edx, 0x80
and edx, eax
or ecx, eax
not ecx
or ecx, edx
mov dl, 0xfc
sub dl, cl
mov byte [esp + eax - 0xab255f], dl
inc eax
cmp eax, 0xab256b
jne 0x40f6f0
xor edx, edx
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, byte [eax + edx]
movzx ebx, byte [esp + edx + 8]
test ecx, ecx
je 0x40f742
inc edx
cmp cl, bl
je 0x40f730
movsx edx, bl
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
mov bl, 1
cmp edx, esi
je 0x40f971
mov dword [esp], eax
mov dword [esp + 8], 0x6d1b1869
mov dword [esp + 0xc], 0xfd14121b
xor edx, edx
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 8]
mov edi, ecx
or edi, 0x174ca329
mov ebx, edx
or ebx, 0x174ca329
add ebx, edi
lea edi, [edx + ebx]
inc edi
mov ebp, edi
and ebp, esi
or edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
or ebx, ebp
mov al, 0x32
sub al, bl
mov byte [esp + edx + 8], al
lea eax, [edx + 1]
dec ecx
mov edx, eax
cmp eax, 8
jne 0x40f780
movzx ebx, byte [esp + 8]
mov eax, dword [esp]
mov ecx, eax
test bl, bl
lea esi, [esp + 8]
je 0x40f80b
mov edx, esi
mov edi, eax
mov ecx, eax
jmp 0x40f7e7
movzx ebx, byte [edx]
test bl, bl
je 0x40f80b
mov bh, byte [edi]
test bh, bh
je 0x40f96f
inc edi
inc edx
lea ebp, [ecx + 1]
cmp bh, bl
je 0x40f7fe
mov ecx, ebp
mov edi, ebp
je 0x40f7e0
mov edx, esi
jmp 0x40f7e0
xor ebx, ebx
jmp 0x40f97a
xor edx, edx
test ecx, ecx
je 0x40f96f
mov dword [esp + 8], 0x7e877086
mov dword [esp + 0xc], 0x837f3f59
mov dword [esp + 0x10], 0x3b38728f
mov dword [esp + 0x14], 0x9a92649a
mov dword [esp + 0x18], 0x320446d
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 4
xor al, byte [esp + edx + 8]
add al, 0xec
mov byte [esp + edx + 8], al
inc edx
cmp edx, 0x17
jne 0x40f850
movzx edx, byte [esp + 8]
mov eax, dword [esp]
mov ecx, eax
test dl, dl
je 0x40f8a4
lea ebp, [esp + 8]
mov esi, ebp
mov edi, eax
mov ecx, eax
jmp 0x40f887
movzx edx, byte [esi]
test dl, dl
je 0x40f8a4
mov dh, byte [edi]
test dh, dh
je 0x40f96f
inc edi
inc esi
lea ebx, [ecx + 1]
cmp dh, dl
je 0x40f89e
mov ecx, ebx
mov edi, ebx
je 0x40f880
mov esi, ebp
jmp 0x40f880
test ecx, ecx
je 0x40f96f
mov ebx, ecx
mov word [esp + 8], 0x5972
mov byte [esp + 0xa], 0x1a
mov dword [esp + 0xb], 0
lea edx, [esp + 8]
mov esi, 0xc4
nop
nop
nop
nop
nop
movzx eax, byte [edx]
mov ecx, esi
or ecx, eax
mov edi, eax
not edi
or edi, esi
add edi, eax
mov eax, 0xfe
sub eax, edi
and eax, ecx
mov cl, 0xd8
sub cl, al
mov byte [edx], cl
inc edx
dec esi
cmp esi, 0xbd
jne 0x40f8d0
mov ecx, ebx
add ecx, 0x13
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40f940
lea esi, [esp + 8]
mov edi, esi
mov edx, ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [esp]
jmp 0x40f927
movzx ebx, byte [edi]
test bl, bl
je 0x40f944
mov bh, byte [ecx]
test bh, bh
je 0x40f96f
inc ecx
inc edi
lea ebp, [edx + 1]
cmp bh, bl
je 0x40f93a
mov edx, ebp
mov ecx, ebp
je 0x40f920
mov edi, esi
jmp 0x40f920
mov edx, ecx
jmp 0x40f94c
test edx, edx
mov ecx, dword [esp + 0x6c]
je 0x40f96f
mov byte [0x44f908], 1
push edx
push ecx
push 0x100
push 0x44f90a
call fcn.0040f210
add esp, 0x10
mov eax, dword [esp + 4]
mov bl, 1
jmp 0x40f971
xor ebx, ebx
push eax
call fcn.0043e6b0
add esp, 4
mov eax, ebx
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret