Function at 0x40b390
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], 0xea9e8e83
mov dword [esp + 0x2c], 0x86848084
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0x2c
mov dword [esp + 0x31], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
ja 0x40b40c
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
lea esi, [eax + 0x47]
add eax, ecx
and esi, ecx
add esi, esi
sub eax, esi
add eax, 0x2842d247
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x9d
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jb 0x40b3d0
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], 0x33a531f3
mov dword [esp + 0x2c], 0x2fa22dba
mov dword [esp + 0x30], 0x2bbc29b5
mov dword [esp + 0x34], 0x27f325a8
mov dword [esp + 0x38], 0x23ab218c
mov dword [esp + 0x3c], 0x1f831d8c
mov dword [esp + 0x40], 0x1bfa19d2
mov dword [esp + 0x44], 0x178615b5
mov dword [esp + 0x48], 0x13861180
mov dword [esp + 0x4c], 0xfad0d95
mov dword [esp + 0x50], 0xb8609a9
mov dword [esp + 0x54], 0x791059d
mov dword [esp + 0x58], 0x3d50196
mov dword [esp + 0x5c], 0xff2bfd74
mov dword [esp + 0x60], 0xfb75f977
mov dword [esp + 0x64], 0xf723f57b
mov dword [esp + 0x68], 0xf365f16e
mov dword [esp + 0x6c], 0xef7bed7e
mov dword [esp + 0x70], 0xeb67e93d
mov dword [esp + 0x74], 0xe772e576
mov dword [esp + 0x78], 0xe374e17d
mov dword [esp + 0x7c], 0xdf49dd7f
mov dword [esp + 0x80], 0xdb47d944
mov dword [esp + 0x84], 0xd723d548
mov dword [esp + 0x88], 0xd3d2d12a
mov byte [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x64
ja 0x40b560
nop
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, 0x74bf02cc
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 4
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x65
jb 0x40b530
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0x63c361bf
mov dword [esp + 0x10], 0x67ff65f4
mov dword [esp + 0x14], 0x5958
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xc
ja 0x40b5df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
lea ebx, [edx + 0x98]
add edx, edi
and ebx, edi
add ebx, ebx
sub edx, ebx
add edx, 0x31b95098
mov dword [esp], edx
mov edx, dword [esp]
add dl, 8
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xd
jb 0x40b5a0
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040c060
add esp, 0x1c
test al, al
je 0x40b734
mov word [esp + 0x28], 0x3a07
mov byte [esp + 0x2a], 0x92
mov word [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40b65e
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, 0x3d14964
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40b630
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 0x40b681
inc eax
cmp dl, dh
je 0x40b670
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40b922
mov dword [esp + 0x28], 0x3b292c3f
mov dword [esp + 0x2c], 0x83303e35
mov byte [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40b6fb
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 + ecx]
add edx, 0xc8f0622
add eax, 0xc8f0622
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
add al, 0x56
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40b6c0
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40b73b
mov edx, esi
mov ecx, eax
jmp 0x40b717
movzx ebx, byte [edx]
test bl, bl
je 0x40b73d
mov bh, byte [eax]
test bh, bh
je 0x40b91a
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40b72e
mov ecx, edi
mov eax, edi
je 0x40b710
mov edx, esi
jmp 0x40b710
xor eax, eax
jmp 0x40b932
mov ecx, eax
test ecx, ecx
je 0x40b91a
mov dword [esp + 0x28], 0xb2a9b4ae
mov dword [esp + 0x2c], 0xd9c9095b
mov dword [esp + 0x30], 0x10cd6d5
mov dword [esp + 0x34], 0xd6dac0da
mov dword [esp + 0x38], 0x690428c7
mov word [esp + 0x3c], 0
mov byte [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x40b7d2
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x28]
lea eax, [ecx + 0x3b]
and eax, edx
add ecx, edx
sub ecx, eax
add ecx, 0xb9f7e43b
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xd9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x40b790
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40b814
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40b7f7
movzx ecx, byte [edx]
test cl, cl
je 0x40b816
mov ch, byte [eax]
test ch, ch
je 0x40b91a
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40b80e
mov esi, ebx
mov eax, ebx
je 0x40b7f0
mov edx, edi
jmp 0x40b7f0
mov esi, eax
test esi, esi
je 0x40b91a
mov word [esp + 0x28], 0xd9b2
mov byte [esp + 0x2a], 0x9a
mov word [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40b86e
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x78e611b
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x79
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40b840
movzx eax, byte [esp + 0x28]
test al, al
je 0x40b8b0
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40b897
movzx eax, byte [ecx]
test al, al
je 0x40b8c1
mov ah, byte [edx]
test ah, ah
je 0x40b91a
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40b8aa
mov edi, ebx
mov edx, ebx
je 0x40b890
mov ecx, ebp
jmp 0x40b890
mov byte [0x442b44], 1
mov eax, 0x442b46
jmp 0x40b943
test edi, edi
je 0x40b91a
mov byte [0x442b44], 1
mov dword [esp + 0x28], 0
mov eax, 0x442b46
cmp esi, edi
jae 0x40b943
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40b93d
push ebp
push edi
push esi
call fcn.0040d0d0
add esp, 0xc
movzx edx, word [esp + 0x28]
lea ecx, [ebx + 2]
mov word [ebx + 0x442b46], dx
cmp ebx, 0x1fb
ja 0x40b912
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40b8e3
lea eax, [ecx + 0x442b46]
jmp 0x40b943
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.00433e80
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x442b46]
mov word [eax], 0
jmp 0x40b922