Function at 0x40b240
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], 0xd61ef2f1
mov dword [esp + 0x2c], 0xd2d0d4d8
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0xa8
mov word [esp + 0x31], 0
mov byte [esp + 0x33], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xb
ja 0x40b2b3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x10b9c
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xf4
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
jb 0x40b280
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], 0x37c539e7
mov dword [esp + 0x2c], 0x33be35c6
mov dword [esp + 0x30], 0xcf3c31cd
mov dword [esp + 0x34], 0xcbffcd40
mov dword [esp + 0x38], 0xc74fc924
mov dword [esp + 0x3c], 0xc33fc534
mov dword [esp + 0x40], 0xdffec106
mov dword [esp + 0x44], 0xdb2add3d
mov dword [esp + 0x48], 0xd722d928
mov dword [esp + 0x4c], 0xd32dd52d
mov dword [esp + 0x50], 0xef62d131
mov dword [esp + 0x54], 0xeb19ed15
mov dword [esp + 0x58], 0xe7d5e91a
mov dword [esp + 0x5c], 0xe3d7e56c
mov dword [esp + 0x60], 0xff75e16b
mov dword [esp + 0x64], 0xfbcffd77
mov dword [esp + 0x68], 0xf705f902
mov dword [esp + 0x6c], 0xf307f57a
mov dword [esp + 0x70], 0x8f03f1c5
mov dword [esp + 0x74], 0x8b7e8d02
mov dword [esp + 0x78], 0x87748975
mov dword [esp + 0x7c], 0x8371857b
mov dword [esp + 0x80], 0x9f63817c
mov dword [esp + 0x84], 0x9b8f9d60
mov dword [esp + 0x88], 0x9796998e
mov byte [esp + 0x8e], 0
mov word [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x66
ja 0x40b410
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, 0x5c008876
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xb2
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x67
jb 0x40b3e0
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x21852755
mov dword [esp + 0x10], 0x3d992390
mov word [esp + 0x14], 0x3f3c
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xf
ja 0x40b49a
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
lea ebx, [edx + edi]
add ebx, 0x833c8189
add edx, 0x833c8189
and edx, edi
mov edi, ebx
xor edi, edx
add edi, edx
not edx
and edx, ebx
add edx, edx
sub edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0x53
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x10
jb 0x40b450
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c040
add esp, 0x1c
test al, al
je 0x40b5f4
mov dword [esp], 0xf69e9b
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40b511
nop
nop
nop
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]
add eax, 0xd96e8dfe
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xa
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40b4e0
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 0x40b530
inc eax
cmp dl, dh
je 0x40b520
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40b7f2
mov dword [esp + 0x28], 0xf7c1c4f3
mov dword [esp + 0x2c], 0x67f8fafd
mov dword [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40b5b5
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]
lea edx, [eax + ecx]
add edx, 0x10b98
add eax, 0x98
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40b570
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40b5fb
mov edx, esi
mov ecx, eax
jmp 0x40b5d7
movzx ebx, byte [edx]
test bl, bl
je 0x40b5fd
mov bh, byte [eax]
test bh, bh
je 0x40b7ea
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b5ee
mov ecx, edi
mov eax, edi
je 0x40b5d0
mov edx, esi
jmp 0x40b5d0
xor eax, eax
jmp 0x40b802
mov ecx, eax
test ecx, ecx
je 0x40b7ea
mov dword [esp + 0x28], 0xe6efe0ee
mov dword [esp + 0x2c], 0xf3e72739
mov dword [esp + 0x30], 0x2b28e2e7
mov dword [esp + 0x34], 0xfae2ecfa
mov dword [esp + 0x38], 0x13302cf5
mov byte [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x14
ja 0x40b693
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]
lea edx, [eax - 0x705b6740]
lea esi, [eax + ecx]
add esi, 0x8fa498c0
add eax, 0xc0
or eax, edx
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0xc]
add al, 0x40
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x15
jb 0x40b650
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40b6d4
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40b6b7
movzx ecx, byte [edx]
test cl, cl
je 0x40b6d6
mov ch, byte [eax]
test ch, ch
je 0x40b7ea
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40b6ce
mov esi, ebx
mov eax, ebx
je 0x40b6b0
mov edx, edi
jmp 0x40b6b0
mov esi, eax
test esi, esi
je 0x40b7ea
mov word [esp + 0x28], 0x7952
mov byte [esp + 0x2a], 0x3a
mov word [esp + 0x2b], 0
mov byte [esp + 0x2d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40b73e
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, 0x5cecf78b
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x49
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40b710
movzx eax, byte [esp + 0x28]
test al, al
je 0x40b780
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40b767
movzx eax, byte [ecx]
test al, al
je 0x40b791
mov ah, byte [edx]
test ah, ah
je 0x40b7ea
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40b77a
mov edi, ebx
mov edx, ebx
je 0x40b760
mov ecx, ebp
jmp 0x40b760
mov byte [0x442d54], 1
mov eax, 0x442d56
jmp 0x40b813
test edi, edi
je 0x40b7ea
mov byte [0x442d54], 1
mov dword [esp + 0x28], 0
mov eax, 0x442d56
cmp esi, edi
jae 0x40b813
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40b80d
push ebp
push edi
push esi
call fcn.0040d220
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x442d56], dx
cmp ebx, 0x1fb
ja 0x40b7e2
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b7b3
lea eax, [ecx + 0x442d56]
jmp 0x40b813
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.004340c0
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x442d56]
mov word [eax], 0
jmp 0x40b7f2