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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0x28], 0xdea6bab9
mov dword [esp + 0x2c], 0x4a484c50
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0xe0
mov dword [esp + 0x31], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
ja 0x40b663
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x600ffffc
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x1c
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jb 0x40b630
lea eax, [esp + 0x1c]
lea esi, [esp + 0x28]
mov ebx, esi
mov edi, eax
mov ecx, 2
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0x24]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x30]
mov byte [esp + 0x24], cl
mov dword [esp + 0x28], 0xa351ad6b
mov dword [esp + 0x2c], 0xa752a152
mov dword [esp + 0x30], 0xbb48a541
mov dword [esp + 0x34], 0xbf83b94c
mov dword [esp + 0x38], 0xb33bbd68
mov dword [esp + 0x3c], 0xb753b140
mov dword [esp + 0x40], 0x4b6ab57a
mov dword [esp + 0x44], 0x4fbe49a9
mov dword [esp + 0x48], 0x43be4dbc
mov dword [esp + 0x4c], 0x47a141b9
mov dword [esp + 0x50], 0x5bae45a5
mov dword [esp + 0x54], 0x5fad59a1
mov dword [esp + 0x58], 0x53615dae
mov dword [esp + 0x5c], 0x576b51d8
mov dword [esp + 0x60], 0x6be155df
mov dword [esp + 0x64], 0x6f5369e3
mov dword [esp + 0x68], 0x63916d96
mov dword [esp + 0x6c], 0x679b6196
mov dword [esp + 0x70], 0x7b8f6559
mov dword [esp + 0x74], 0x7f82798e
mov dword [esp + 0x78], 0x73807d99
mov dword [esp + 0x7c], 0x77857197
mov dword [esp + 0x80], 0xbef7590
mov dword [esp + 0x84], 0xf1309ec
mov dword [esp + 0x88], 0x3020d12
mov word [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x65
ja 0x40b7b0
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x8985d4e6
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xb6
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x66
jb 0x40b780
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x5bbb598f
mov dword [esp + 0x10], 0x47af45d4
mov word [esp + 0x14], 0x4140
mov dword [esp + 0x16], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xe
ja 0x40b823
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0x6272660c
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xac
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xf
jb 0x40b7f0
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c1f0
add esp, 0x1c
test al, al
je 0x40b974
mov word [esp + 0x28], 0xa29f
mov byte [esp + 0x2a], 0xf2
mov word [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40b89e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x519c237e
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x8e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40b870
xor eax, eax
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx + eax]
mov dh, byte [esp + eax + 0x28]
test dl, dl
je 0x40b8c1
inc eax
cmp dl, dh
je 0x40b8b0
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40bb52
mov dword [esp + 0x28], 0x9f818e93
mov dword [esp + 0x2c], 0x2f9a9885
mov byte [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40b92e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x86cf2e05
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xdd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40b900
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40b97b
mov edx, esi
mov ecx, eax
jmp 0x40b957
movzx ebx, byte [edx]
test bl, bl
je 0x40b97d
mov bh, byte [eax]
test bh, bh
je 0x40bb4a
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b96e
mov ecx, edi
mov eax, edi
je 0x40b950
mov edx, esi
jmp 0x40b950
xor eax, eax
jmp 0x40bb62
mov ecx, eax
test ecx, ecx
je 0x40bb4a
mov dword [esp + 0x28], 0xdcc7dad8
mov dword [esp + 0x2c], 0xcbdf1f35
mov dword [esp + 0x30], 0x1312cccf
mov dword [esp + 0x34], 0xc0c8d6c4
mov dword [esp + 0x38], 0x4b2a06d1
mov dword [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x40b9fe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x70066e4f
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xd7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x40b9d0
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40ba44
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40ba27
movzx ecx, byte [edx]
test cl, cl
je 0x40ba46
mov ch, byte [eax]
test ch, ch
je 0x40bb4a
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40ba3e
mov esi, ebx
mov eax, ebx
je 0x40ba20
mov edx, edi
jmp 0x40ba20
mov esi, eax
test esi, esi
je 0x40bb4a
mov dword [esp], 0x945770
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40baa1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0xb64146ed
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x85
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40ba70
movzx eax, byte [esp]
test al, al
je 0x40bae0
add esi, 0x13
mov ebp, esp
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40bac7
movzx eax, byte [ecx]
test al, al
je 0x40baf1
mov ah, byte [edx]
test ah, ah
je 0x40bb4a
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40bada
mov edi, ebx
mov edx, ebx
je 0x40bac0
mov ecx, ebp
jmp 0x40bac0
mov byte [0x440c0c], 1
mov eax, 0x440c0e
jmp 0x40bb73
test edi, edi
je 0x40bb4a
mov byte [0x440c0c], 1
mov dword [esp + 0x28], 0
mov eax, 0x440c0e
cmp esi, edi
jae 0x40bb73
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40bb6d
push ebp
push edi
push esi
call fcn.0040d370
add esp, 0xc
movzx ecx, word [esp + 0x28]
mov word [ebx + 0x440c0e], cx
lea ecx, [ebx + 2]
cmp ebx, 0x1fb
ja 0x40bb42
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40bb13
lea eax, [ecx + 0x440c0e]
jmp 0x40bb73
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.00432760
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x440c0e]
mov word [eax], 0
jmp 0x40bb52