Function at 0x40b8f0
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], 0x40081829
mov dword [esp + 0x2c], 0x1c1e1a12
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0x82
mov word [esp + 0x31], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
ja 0x40b963
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0xebd10977
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 3
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
jb 0x40b930
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], 0xc371c10b
mov dword [esp + 0x2c], 0xc770c57c
mov dword [esp + 0x30], 0xdb66d961
mov dword [esp + 0x34], 0xdf23dd6e
mov dword [esp + 0x38], 0xd35bd10a
mov dword [esp + 0x3c], 0xd773d562
mov dword [esp + 0x40], 0xab48a91c
mov dword [esp + 0x44], 0xaf1cad09
mov dword [esp + 0x48], 0xa31ca11e
mov dword [esp + 0x4c], 0xa701a519
mov dword [esp + 0x50], 0xbb0cb905
mov dword [esp + 0x54], 0xbf0dbd01
mov dword [esp + 0x58], 0xb341b100
mov dword [esp + 0x5c], 0xb74bb53a
mov dword [esp + 0x60], 0x8b01893f
mov dword [esp + 0x64], 0x8f738d03
mov dword [esp + 0x68], 0x83318128
mov dword [esp + 0x6c], 0x873b8530
mov dword [esp + 0x70], 0x9b2f9979
mov dword [esp + 0x74], 0x9f209d28
mov dword [esp + 0x78], 0x932e9139
mov dword [esp + 0x7c], 0x97259537
mov dword [esp + 0x80], 0x6bcf6932
mov dword [esp + 0x84], 0x6f736dce
mov dword [esp + 0x88], 0x63606174
mov word [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x65
ja 0x40babc
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x4aa94b27
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov edx, ecx
not edx
and edx, 0xe9
and ecx, 0x16
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x66
jb 0x40ba80
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x3f9f3dcb
mov dword [esp + 0x10], 0x338b318e
mov word [esp + 0x14], 0x3532
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xf
ja 0x40bb33
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0x4c52ec53
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0x97
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x10
jb 0x40bb00
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c720
add esp, 0x1c
test al, al
je 0x40bc84
mov word [esp + 0x28], 0x5752
mov byte [esp + 0x2a], 0xc1
mov word [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40bbae
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, 0xf8833f5c
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x61
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40bb80
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 0x40bbd1
inc eax
cmp dl, dh
je 0x40bbc0
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40be72
mov dword [esp + 0x28], 0xea1a1be8
mov dword [esp + 0x2c], 0x6215111a
mov word [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40bc3e
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, 0x6df1a868
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xf3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40bc10
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40bc8b
mov edx, esi
mov ecx, eax
jmp 0x40bc67
movzx ebx, byte [edx]
test bl, bl
je 0x40bc8d
mov bh, byte [eax]
test bh, bh
je 0x40be6a
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40bc7e
mov ecx, edi
mov eax, edi
je 0x40bc60
mov edx, esi
jmp 0x40bc60
xor eax, eax
jmp 0x40be82
mov ecx, eax
test ecx, ecx
je 0x40be6a
mov dword [esp + 0x28], 0x18110614
mov dword [esp + 0x2c], 0xed015d27
mov dword [esp + 0x30], 0x5d42080d
mov dword [esp + 0x34], 0xf40c1af0
mov dword [esp + 0x38], 0x754a320b
mov word [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x15
ja 0x40bd0e
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, 0x775c5868
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xf2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x16
jb 0x40bce0
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40bd54
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40bd37
movzx ecx, byte [edx]
test cl, cl
je 0x40bd56
mov ch, byte [eax]
test ch, ch
je 0x40be6a
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40bd4e
mov esi, ebx
mov eax, ebx
je 0x40bd30
mov edx, edi
jmp 0x40bd30
mov esi, eax
test esi, esi
je 0x40be6a
mov word [esp + 0x28], 0xc1ea
mov byte [esp + 0x2a], 2
mov word [esp + 0x2b], 0
mov byte [esp + 0x2d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40bdbe
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, 0xde42aef7
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40bd90
movzx eax, byte [esp + 0x28]
test al, al
je 0x40be00
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40bde7
movzx eax, byte [ecx]
test al, al
je 0x40be11
mov ah, byte [edx]
test ah, ah
je 0x40be6a
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40bdfa
mov edi, ebx
mov edx, ebx
je 0x40bde0
mov ecx, ebp
jmp 0x40bde0
mov byte [0x449764], 1
mov eax, 0x449766
jmp 0x40be93
test edi, edi
je 0x40be6a
mov byte [0x449764], 1
mov dword [esp + 0x28], 0
mov eax, 0x449766
cmp esi, edi
jae 0x40be93
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40be8d
push ebp
push edi
push esi
call fcn.0040d840
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x449766], dx
cmp ebx, 0x1fb
ja 0x40be62
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40be33
lea eax, [ecx + 0x449766]
jmp 0x40be93
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.0043b3e0
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x449766]
mov word [eax], 0
jmp 0x40be72