Function at 0x40b480
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], 0x4b95a7a2
mov dword [esp + 0x2c], 0xdf9f9d9b
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0x7b
mov dword [esp + 0x31], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xf
ja 0x40b503
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, 0xd3e21939
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xc6
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0x10
jb 0x40b4d0
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], 0xe818e622
mov dword [esp + 0x2c], 0xec19ea05
mov dword [esp + 0x30], 0xf01fee08
mov dword [esp + 0x34], 0xf4daf207
mov dword [esp + 0x38], 0xf802f623
mov dword [esp + 0x3c], 0xfc1afa0b
mov dword [esp + 0x40], 0x80a1fec5
mov dword [esp + 0x44], 0x84758260
mov dword [esp + 0x48], 0x88658677
mov dword [esp + 0x4c], 0x8c688a60
mov dword [esp + 0x50], 0x90658e6c
mov dword [esp + 0x54], 0x94649278
mov dword [esp + 0x58], 0x98a89679
mov dword [esp + 0x5c], 0x9cb29a63
mov dword [esp + 0x60], 0xa0589e66
mov dword [esp + 0x64], 0xa48aa25a
mov dword [esp + 0x68], 0xa858a641
mov dword [esp + 0x6c], 0xac42aa59
mov dword [esp + 0x70], 0xb046ae80
mov dword [esp + 0x74], 0xb459b241
mov dword [esp + 0x78], 0xb857b650
mov dword [esp + 0x7c], 0xbc4cba5e
mov dword [esp + 0x80], 0x40a6be5b
mov dword [esp + 0x84], 0x444a42a7
mov dword [esp + 0x88], 0x4849464d
mov byte [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x64
ja 0x40b650
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0xa634b26
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x3f
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x65
jb 0x40b620
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0xec0eea3a
mov dword [esp + 0x10], 0x907aee7f
mov word [esp + 0x14], 0x9293
mov dword [esp + 0x16], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xd
ja 0x40b6c3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0x8b44feba
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xaf
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xe
jb 0x40b690
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c1a0
add esp, 0x1c
test al, al
je 0x40b804
mov dword [esp], 0x374144
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40b731
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0x6ea2a438
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xf3
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40b700
xor eax, eax
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx + eax]
mov dh, byte [esp + eax]
test dl, dl
je 0x40b750
inc eax
cmp dl, dh
je 0x40b740
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40b9f2
mov dword [esp + 0x28], 0x54646752
mov dword [esp + 0x2c], 0xd4656560
mov dword [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40b7be
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, 0x7055c8b3
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x92
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40b790
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40b80b
mov edx, esi
mov ecx, eax
jmp 0x40b7e7
movzx ebx, byte [edx]
test bl, bl
je 0x40b80d
mov bh, byte [eax]
test bh, bh
je 0x40b9ea
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b7fe
mov ecx, edi
mov eax, edi
je 0x40b7e0
mov edx, esi
jmp 0x40b7e0
xor eax, eax
jmp 0x40ba02
mov ecx, eax
test ecx, ecx
je 0x40b9ea
mov dword [esp + 0x28], 0x40b94ebc
mov dword [esp + 0x2c], 0xb549056f
mov dword [esp + 0x30], 0x757ac0c5
mov dword [esp + 0x34], 0xccc432c8
mov dword [esp + 0x38], 0x5d721a33
mov dword [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x40b88e
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, 0xb2abf138
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xea
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x40b860
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40b8d4
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40b8b7
movzx ecx, byte [edx]
test cl, cl
je 0x40b8d6
mov ch, byte [eax]
test ch, ch
je 0x40b9ea
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40b8ce
mov esi, ebx
mov eax, ebx
je 0x40b8b0
mov edx, edi
jmp 0x40b8b0
mov esi, eax
test esi, esi
je 0x40b9ea
mov word [esp + 0x28], 0x9bf6
mov byte [esp + 0x2a], 0xd6
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40b93e
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, 0xc3dc724c
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x68
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40b910
movzx eax, byte [esp + 0x28]
test al, al
je 0x40b980
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40b967
movzx eax, byte [ecx]
test al, al
je 0x40b991
mov ah, byte [edx]
test ah, ah
je 0x40b9ea
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40b97a
mov edi, ebx
mov edx, ebx
je 0x40b960
mov ecx, ebp
jmp 0x40b960
mov byte [0x448b24], 1
mov eax, 0x448b26
jmp 0x40ba13
test edi, edi
je 0x40b9ea
mov byte [0x448b24], 1
mov dword [esp + 0x28], 0
mov eax, 0x448b26
cmp esi, edi
jae 0x40ba13
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40ba0d
push ebp
push edi
push esi
call fcn.0040d1f0
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x448b26], dx
cmp ebx, 0x1fb
ja 0x40b9e2
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b9b3
lea eax, [ecx + 0x448b26]
jmp 0x40ba13
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.0043a100
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x448b26]
mov word [eax], 0
jmp 0x40b9f2