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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov dword [esp + 0x24], 0x2e9aaaaf
mov dword [esp + 0x28], 0xd2d4d8dc
lea edx, [esp + 0x2c]
mov byte [esp + 0x2c], 0x74
mov dword [esp + 0x2d], 0
mov byte [esp + 0x31], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xd
ja 0x40b45b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x7c5e99bd
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x4f
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xe
jb 0x40b428
lea eax, [esp + 0x18]
lea esi, [esp + 0x24]
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 + 0x20]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x2c]
mov byte [esp + 0x20], cl
mov dword [esp + 0x24], 0xb92bbb41
mov dword [esp + 0x28], 0xbd2abf2a
mov dword [esp + 0x2c], 0xb120b327
mov dword [esp + 0x30], 0xb565b724
mov dword [esp + 0x34], 0xa925ab40
mov dword [esp + 0x38], 0xad35af38
mov dword [esp + 0x3c], 0xa182a362
mov dword [esp + 0x40], 0xa536a747
mov dword [esp + 0x44], 0x59c65b34
mov dword [esp + 0x48], 0x5dbb5fc7
mov dword [esp + 0x4c], 0x51c653bb
mov dword [esp + 0x50], 0x55c757cf
mov dword [esp + 0x54], 0x499b4bc6
mov dword [esp + 0x58], 0x4d9d4fc0
mov dword [esp + 0x5c], 0x41cb43c5
mov dword [esp + 0x60], 0x459547c9
mov dword [esp + 0x64], 0x79eb7bde
mov dword [esp + 0x68], 0x7ded7fee
mov dword [esp + 0x6c], 0x71f973af
mov dword [esp + 0x70], 0x75ea77e6
mov dword [esp + 0x74], 0x69f86bef
mov dword [esp + 0x78], 0x6dff6f8d
mov dword [esp + 0x7c], 0x61f96388
mov dword [esp + 0x80], 0x65556784
mov dword [esp + 0x84], 0x191a1b5a
mov word [esp + 0x88], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x65
ja 0x40b5b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
lea edi, [ecx + edx]
add ecx, 0xdf
and ecx, edx
add ecx, ecx
sub edi, ecx
add edi, 0x2be65adf
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0xc]
add cl, 0xa5
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x66
jb 0x40b578
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xc], 0x315d3f0d
mov dword [esp + 0x10], 0x35493340
mov dword [esp + 0x14], 0x3734
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xb
ja 0x40b61b
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0xf1f2c735
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xf7
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xc
jb 0x40b5e8
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c0e8
add esp, 0x1c
test al, al
je 0x40b76c
mov word [esp + 0x24], 0x9a9f
mov byte [esp + 0x26], 0x22
mov word [esp + 0x27], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40b696
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0x46ec67c8
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x18
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40b668
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 + 0x24]
test dl, dl
je 0x40b6b9
inc eax
cmp dl, dh
je 0x40b6a8
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40b95a
mov dword [esp + 0x24], 0xeddfe091
mov dword [esp + 0x28], 0x7deceee7
mov dword [esp + 0x2c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40b726
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0xa411cabf
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40b6f8
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x24]
test bl, bl
je 0x40b773
mov edx, esi
mov ecx, eax
jmp 0x40b74f
movzx ebx, byte [edx]
test bl, bl
je 0x40b775
mov bh, byte [eax]
test bh, bh
je 0x40b952
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b766
mov ecx, edi
mov eax, edi
je 0x40b748
mov edx, esi
jmp 0x40b748
xor eax, eax
jmp 0x40b96a
mov ecx, eax
test ecx, ecx
je 0x40b952
mov dword [esp + 0x24], 0xd2d9d4de
mov dword [esp + 0x28], 0xc9d9190b
mov dword [esp + 0x2c], 0x211cd6d5
mov dword [esp + 0x30], 0x362a20ca
mov dword [esp + 0x34], 0xb9e4f827
mov dword [esp + 0x38], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x17
ja 0x40b7ff
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 + 0x24]
lea edx, [eax + 0x73]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x77cd8d73
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xc1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x24], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x18
jb 0x40b7c8
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x24]
test cl, cl
je 0x40b83c
lea edi, [esp + 0x24]
mov edx, edi
mov esi, eax
jmp 0x40b81f
movzx ecx, byte [edx]
test cl, cl
je 0x40b83e
mov ch, byte [eax]
test ch, ch
je 0x40b952
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40b836
mov esi, ebx
mov eax, ebx
je 0x40b818
mov edx, edi
jmp 0x40b818
mov esi, eax
test esi, esi
je 0x40b952
mov dword [esp], 0x32f7d2
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40b8aa
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]
lea edx, [eax - 0x340549b4]
mov edi, edx
and edi, ecx
xor edx, ecx
lea edx, [edx + edi*2]
add eax, 0x4c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
add al, 0x84
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40b868
movzx eax, byte [esp]
test al, al
je 0x40b8e8
add esi, 0x13
mov ebp, esp
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40b8cf
movzx eax, byte [ecx]
test al, al
je 0x40b8f9
mov ah, byte [edx]
test ah, ah
je 0x40b952
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40b8e2
mov edi, ebx
mov edx, ebx
je 0x40b8c8
mov ecx, ebp
jmp 0x40b8c8
mov byte [0x441ac8], 1
mov eax, 0x441aca
jmp 0x40b97b
test edi, edi
je 0x40b952
mov byte [0x441ac8], 1
mov dword [esp + 0x24], 0
mov eax, 0x441aca
cmp esi, edi
jae 0x40b97b
xor ebx, ebx
lea ebp, [esp + 0x24]
cmp byte [esi], 0
je 0x40b975
push ebp
push edi
push esi
call fcn.0040d178
add esp, 0xc
movzx edx, word [esp + 0x24]
lea ecx, [ebx + 2]
mov word [ebx + 0x441aca], dx
cmp ebx, 0x1fb
ja 0x40b94a
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b91b
lea eax, [ecx + 0x441aca]
jmp 0x40b97b
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.00432fc8
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x441aca]
mov word [eax], 0
jmp 0x40b95a