Function at 0x40b730
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], 0x70b8a8a9
mov dword [esp + 0x2c], 0xb4aaa6a6
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0x2e
mov word [esp + 0x31], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
ja 0x40b7a3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0xc65b089
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x41
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
jb 0x40b770
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], 0xfb69f9c3
mov dword [esp + 0x2c], 0xff68fd64
mov dword [esp + 0x30], 0xf36ef159
mov dword [esp + 0x34], 0xf72bf566
mov dword [esp + 0x38], 0xeb63e942
mov dword [esp + 0x3c], 0xef4bed7a
mov dword [esp + 0x40], 0xe300e124
mov dword [esp + 0x44], 0xe774e541
mov dword [esp + 0x48], 0xdb44d976
mov dword [esp + 0x4c], 0xdf79dd41
mov dword [esp + 0x50], 0xd344d17d
mov dword [esp + 0x54], 0xd745d549
mov dword [esp + 0x58], 0xcb19c948
mov dword [esp + 0x5c], 0xcf13cd42
mov dword [esp + 0x60], 0xc349c147
mov dword [esp + 0x64], 0xc71bc54b
mov dword [esp + 0x68], 0xbb29b960
mov dword [esp + 0x6c], 0xbf23bd28
mov dword [esp + 0x70], 0xb327b161
mov dword [esp + 0x74], 0xb728b520
mov dword [esp + 0x78], 0xab36a911
mov dword [esp + 0x7c], 0xaf3dad0f
mov dword [esp + 0x80], 0xa307a10a
mov dword [esp + 0x84], 0xa75ba506
mov dword [esp + 0x88], 0x9b98995c
mov byte [esp + 0x8e], 0
mov word [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x66
ja 0x40b900
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x4fdb43ff
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 7
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x67
jb 0x40b8d0
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x6bcb6d3f
mov dword [esp + 0x10], 0x67ff69f8
mov word [esp + 0x14], 0x6564
mov dword [esp + 0x16], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xe
ja 0x40b973
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0xe489d052
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xc2
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xf
jb 0x40b940
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c400
add esp, 0x1c
test al, al
je 0x40bab4
mov dword [esp], 0xda322f
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40b9e1
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0xbc16279c
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xbc
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40b9b0
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 0x40ba00
inc eax
cmp dl, dh
je 0x40b9f0
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40bca2
mov dword [esp + 0x28], 0x5779444b
mov dword [esp + 0x2c], 0xd740424d
mov dword [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40ba6e
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, 0x535fc5e4
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xc4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40ba40
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40babb
mov edx, esi
mov ecx, eax
jmp 0x40ba97
movzx ebx, byte [edx]
test bl, bl
je 0x40babd
mov bh, byte [eax]
test bh, bh
je 0x40bc9a
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40baae
mov ecx, edi
mov eax, edi
je 0x40ba90
mov edx, esi
jmp 0x40ba90
xor eax, eax
jmp 0x40bcb2
mov ecx, eax
test ecx, ecx
je 0x40bc9a
mov dword [esp + 0x28], 0x9087b284
mov dword [esp + 0x2c], 0x9baf6f49
mov dword [esp + 0x30], 0x636a909f
mov dword [esp + 0x34], 0x8c9ca688
mov dword [esp + 0x38], 0x7b62469d
mov word [esp + 0x3c], 0
mov byte [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x40bb3e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x81005ad
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x45
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x40bb10
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40bb84
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40bb67
movzx ecx, byte [edx]
test cl, cl
je 0x40bb86
mov ch, byte [eax]
test ch, ch
je 0x40bc9a
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40bb7e
mov esi, ebx
mov eax, ebx
je 0x40bb60
mov edx, edi
jmp 0x40bb60
mov esi, eax
test esi, esi
je 0x40bc9a
mov word [esp + 0x28], 0x4f62
mov byte [esp + 0x2a], 0xa
mov dword [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40bbee
nop
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 + 0x28]
add eax, 0x49b6882a
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xda
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40bbc0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40bc30
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40bc17
movzx eax, byte [ecx]
test al, al
je 0x40bc41
mov ah, byte [edx]
test ah, ah
je 0x40bc9a
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40bc2a
mov edi, ebx
mov edx, ebx
je 0x40bc10
mov ecx, ebp
jmp 0x40bc10
mov byte [0x442ef0], 1
mov eax, 0x442ef2
jmp 0x40bcc3
test edi, edi
je 0x40bc9a
mov byte [0x442ef0], 1
mov dword [esp + 0x28], 0
mov eax, 0x442ef2
cmp esi, edi
jae 0x40bcc3
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40bcbd
push ebp
push edi
push esi
call fcn.0040d320
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x442ef2], dx
cmp ebx, 0x1fb
ja 0x40bc92
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40bc63
lea eax, [ecx + 0x442ef2]
jmp 0x40bcc3
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.00433ea0
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x442ef2]
mov word [eax], 0
jmp 0x40bca2