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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov dword [esp + 0x30], 0x3e766261
mov dword [esp + 0x34], 0x62606c68
lea edx, [esp + 0x38]
mov byte [esp + 0x38], 0xc8
mov dword [esp + 0x39], 0
mov dword [esp + 0x3d], 0
mov dword [esp + 0x41], 0
mov byte [esp + 0x45], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x15
ja 0x40b36e
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 + 0x30]
mov esi, 0xdf
sub esi, eax
add eax, 0x2b3ab920
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add al, 0x20
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x16
jb 0x40b330
lea eax, [esp + 0xc]
lea ebx, [esp + 0x30]
mov esi, ebx
mov edi, eax
mov ecx, 2
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x14]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x38]
mov byte [esp + 0x14], cl
mov dword [esp + 0x30], 0x3b8939f3
mov dword [esp + 0x34], 0x3f883d94
mov dword [esp + 0x38], 0x3ae0199
mov dword [esp + 0x3c], 0x7eb05b6
mov dword [esp + 0x40], 0xbb309d2
mov dword [esp + 0x44], 0xfab0dba
mov dword [esp + 0x48], 0x13f011f4
mov dword [esp + 0x4c], 0x17a415b1
mov dword [esp + 0x50], 0x1bb419a6
mov dword [esp + 0x54], 0x1fb91db1
mov dword [esp + 0x58], 0xe354e1bd
mov dword [esp + 0x5c], 0xe755e549
mov dword [esp + 0x60], 0xeb19e948
mov dword [esp + 0x64], 0xef03ed52
mov dword [esp + 0x68], 0xf349f157
mov dword [esp + 0x6c], 0xf71bf54b
mov dword [esp + 0x70], 0xfb49f950
mov dword [esp + 0x74], 0xff53fd48
mov dword [esp + 0x78], 0xc377c111
mov dword [esp + 0x7c], 0xc768c570
mov dword [esp + 0x80], 0xcb66c961
mov dword [esp + 0x84], 0xcf7dcd6f
mov dword [esp + 0x88], 0xd377d16a
mov dword [esp + 0x8c], 0xd7dbd576
mov dword [esp + 0x90], 0xdbd8d9dc
mov dword [esp + 0x94], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x67
ja 0x40b4cb
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xa8
sub esi, ecx
add ecx, 0x45eedb57
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
add cl, 0x9f
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x68
jb 0x40b490
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0x8be385d7
mov dword [esp + 0x1c], 0x8fe7891a
mov word [esp + 0x20], 0x8d8e
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x12
ja 0x40b54e
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x18]
mov edi, 0x6a
sub edi, edx
add edx, 0xe2062e95
xor edi, edx
and edi, esi
xor edi, edx
mov dword [esp], edi
mov edx, dword [esp]
add dl, 0xed
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x13
jb 0x40b510
lea edx, [esp + 8]
lea esi, [esp + 0x18]
push 0
push edx
push 8
push eax
push ebx
push esi
push ecx
call fcn.0040bf70
add esp, 0x1c
test al, al
je 0x40b6c6
mov word [esp + 0x30], 0xb2cf
mov byte [esp + 0x32], 0x5a
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x40b5e9
nop
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 + 0x30]
mov edx, 0xf3
sub edx, eax
add eax, 0x7f07310c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xac
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x40b5b0
xor ecx, ecx
mov eax, dword [esp + 8]
nop
movzx edx, byte [eax + ecx]
mov dh, byte [esp + ecx + 0x30]
test dl, dl
je 0x40b601
inc ecx
cmp dl, dh
je 0x40b5f0
mov bl, 1
cmp dl, dh
je 0x40b926
mov dword [esp + 0x30], 0x47757043
mov dword [esp + 0x34], 0xc7747a71
mov dword [esp + 0x38], 0
mov word [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x40b679
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0x1d
sub edx, eax
add eax, 0xcd4633e2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xd2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x40b640
mov eax, dword [esp + 8]
movzx ebx, byte [esp + 0x30]
mov ecx, eax
test bl, bl
je 0x40b6cd
lea edx, [esp + 0x30]
mov esi, eax
mov ecx, eax
jmp 0x40b6a7
movzx ebx, byte [edx]
test bl, bl
je 0x40b6cd
mov bh, byte [esi]
test bh, bh
je 0x40b7d4
inc esi
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b6be
mov ecx, edi
mov esi, edi
je 0x40b6a0
lea edx, [esp + 0x30]
jmp 0x40b6a0
xor ebx, ebx
jmp 0x40b92f
test ecx, ecx
je 0x40b7d4
mov dword [esp + 0x30], 0x869f8c9e
mov dword [esp + 0x34], 0x9387476d
mov dword [esp + 0x38], 0x5b5c9a97
mov dword [esp + 0x3c], 0x8a8298b2
mov dword [esp + 0x40], 0x33547099
lea edx, [esp + 0x44]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x4c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1d
ja 0x40b769
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov esi, 0xf9
sub esi, eax
add eax, 0x130d6f06
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add al, 0xd6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1e
jb 0x40b730
lea esi, [esp + 0x30]
mov ecx, 5
lea eax, [esp + 0x18]
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x2c]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, dword [esp + 8]
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x40b7db
mov edx, eax
mov edi, ecx
mov esi, eax
mov eax, ecx
jmp 0x40b7b7
movzx ebx, byte [edx]
test bl, bl
je 0x40b7dd
mov bh, byte [ecx]
test bh, bh
je 0x40b911
inc ecx
inc edx
lea edi, [eax + 1]
cmp bh, bl
je 0x40b7ce
mov eax, edi
mov ecx, edi
je 0x40b7b0
mov edx, esi
jmp 0x40b7b0
xor ebx, ebx
jmp 0x40b926
mov eax, ecx
test eax, eax
je 0x40b911
mov word [esp + 0x30], 0x8faa
mov byte [esp + 0x32], 0x42
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3b], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xf
ja 0x40b85e
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0x49
sub esi, ecx
add ecx, 0x44629bb6
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 6
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x40b820
movzx ebx, byte [esp + 0x30]
test bl, bl
je 0x40b8a6
add eax, 0x13
lea ecx, [esp + 0x30]
mov esi, eax
mov edi, eax
jmp 0x40b887
movzx ebx, byte [ecx]
test bl, bl
je 0x40b8b4
mov bh, byte [esi]
test bh, bh
je 0x40b911
inc esi
inc ecx
lea edx, [edi + 1]
cmp bh, bl
je 0x40b89e
mov edi, edx
mov esi, edx
je 0x40b880
lea ecx, [esp + 0x30]
jmp 0x40b880
mov byte [0x4400cc], 1
mov eax, 0x4400ce
jmp 0x40b91b
test edi, edi
je 0x40b911
mov byte [0x4400cc], 1
mov dword [esp + 0x30], 0
mov ecx, eax
mov eax, 0x4400ce
cmp ecx, edi
jae 0x40b91b
mov esi, ecx
xor ebx, ebx
cmp byte [esi], 0
je 0x40b915
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.0040d060
add esp, 0xc
movzx edx, word [esp + 0x30]
lea ecx, [ebx + 2]
mov word [ebx + 0x4400ce], dx
cmp ebx, 0x1fb
ja 0x40b909
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b8d6
lea eax, [ecx + 0x4400ce]
jmp 0x40b91b
xor ebx, ebx
jmp 0x40b922
lea eax, [ebx + 0x4400ce]
mov word [eax], 0
mov bl, 1
mov eax, dword [esp + 8]
push eax
call fcn.00431b40
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret