Function at 0x40b550
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], 0xeebaaaaf
mov dword [esp + 0x2c], 0xb2b4b8bc
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0xd4
mov dword [esp + 0x31], 0
mov byte [esp + 0x35], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x40b5d3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x507bfa4d
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x7f
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb 0x40b5a0
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], 0xe37de1a3
mov dword [esp + 0x2c], 0xe772e57a
mov dword [esp + 0x30], 0xdb44d97d
mov dword [esp + 0x34], 0xdf83dd48
mov dword [esp + 0x38], 0xd35bd164
mov dword [esp + 0x3c], 0xd773d544
mov dword [esp + 0x40], 0xcbaac982
mov dword [esp + 0x44], 0xcf5ecd6d
mov dword [esp + 0x48], 0xc35ec150
mov dword [esp + 0x4c], 0xc765c55d
mov dword [esp + 0x50], 0x3bae3999
mov dword [esp + 0x54], 0x3fa13da5
mov dword [esp + 0x58], 0x336d31ae
mov dword [esp + 0x5c], 0x376b35bc
mov dword [esp + 0x60], 0x2bbd29bf
mov dword [esp + 0x64], 0x2f732dbb
mov dword [esp + 0x68], 0x23bd2186
mov dword [esp + 0x6c], 0x27bb25b6
mov dword [esp + 0x70], 0x1b8f1945
mov dword [esp + 0x74], 0x1f821d8e
mov dword [esp + 0x78], 0x138c11b5
mov dword [esp + 0x7c], 0x178915b7
mov dword [esp + 0x80], 0xbaf09ac
mov dword [esp + 0x84], 0xf730da8
mov dword [esp + 0x88], 0x302017a
mov byte [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x64
ja 0x40b720
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0xb75968d8
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xc8
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x65
jb 0x40b6f0
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x294d2b75
mov dword [esp + 0x10], 0x2d412fb8
mov word [esp + 0x14], 0x532c
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xf
ja 0x40b793
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0x87ea92b7
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0x6d
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x10
jb 0x40b760
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c280
add esp, 0x1c
test al, al
je 0x40b8f4
mov word [esp + 0x28], 0x8695
mov byte [esp + 0x2a], 0x2a
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40b81b
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + ecx]
add edx, 0x58e4af87
add eax, 0x58e4af87
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
add al, 0x5d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40b7e0
xor eax, eax
mov ecx, dword [esp + 4]
nop
nop
nop
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 0x40b841
inc eax
cmp dl, dh
je 0x40b830
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40bad2
mov dword [esp + 0x28], 0x7f116c63
mov dword [esp + 0x2c], 0xef787a75
mov word [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40b8ae
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, 0x7cf7472c
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x24
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40b880
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40b8fb
mov edx, esi
mov ecx, eax
jmp 0x40b8d7
movzx ebx, byte [edx]
test bl, bl
je 0x40b8fd
mov bh, byte [eax]
test bh, bh
je 0x40baca
inc edx
inc eax
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b8ee
mov ecx, edi
mov eax, edi
je 0x40b8d0
mov edx, esi
jmp 0x40b8d0
xor eax, eax
jmp 0x40bae2
mov ecx, eax
test ecx, ecx
je 0x40baca
mov dword [esp + 0x28], 0x4a43584a
mov dword [esp + 0x2c], 0x7f538bb1
mov dword [esp + 0x30], 0xafb04643
mov dword [esp + 0x34], 0x467e6c46
mov dword [esp + 0x38], 0xc7b88c75
mov dword [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x40b97e
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, 0xa28e0ad6
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xd2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x40b950
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40b9c4
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40b9a7
movzx ecx, byte [edx]
test cl, cl
je 0x40b9c6
mov ch, byte [eax]
test ch, ch
je 0x40baca
inc edx
inc eax
lea ebx, [esi + 1]
cmp ch, cl
je 0x40b9be
mov esi, ebx
mov eax, ebx
je 0x40b9a0
mov edx, edi
jmp 0x40b9a0
mov esi, eax
test esi, esi
je 0x40baca
mov dword [esp], 0x26e1c6
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40ba21
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, 0x1e9cbf49
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x93
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40b9f0
movzx eax, byte [esp]
test al, al
je 0x40ba60
add esi, 0x13
mov ebp, esp
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40ba47
movzx eax, byte [ecx]
test al, al
je 0x40ba71
mov ah, byte [edx]
test ah, ah
je 0x40baca
inc ecx
inc edx
lea ebx, [edi + 1]
cmp ah, al
je 0x40ba5a
mov edi, ebx
mov edx, ebx
je 0x40ba40
mov ecx, ebp
jmp 0x40ba40
mov byte [0x441cec], 1
mov eax, 0x441cee
jmp 0x40baf3
test edi, edi
je 0x40baca
mov byte [0x441cec], 1
mov dword [esp + 0x28], 0
mov eax, 0x441cee
cmp esi, edi
jae 0x40baf3
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40baed
push ebp
push edi
push esi
call fcn.0040d440
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x441cee], dx
cmp ebx, 0x1fb
ja 0x40bac2
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40ba93
lea eax, [ecx + 0x441cee]
jmp 0x40baf3
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.00433600
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x441cee]
mov word [eax], 0
jmp 0x40bad2