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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18c
mov eax, dword [0x44965c]
mov dword [esp + 0xc], 0xca54cc44
mov dword [esp + 0x10], 0xc651c859
mov dword [esp + 0x14], 0xc249c44b
mov dword [esp + 0x18], 0x3e93c053
mov dword [esp + 0x1c], 0x3aa93ca3
mov dword [esp + 0x20], 0x363938af
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x18
ja 0x40b186
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 + 0xc]
add ecx, 0xf76cc8f1
xor ecx, edx
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x10c]
add cl, 0xc2
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x19
jb 0x40b150
lea esi, [esp + 0xc]
push 0x800
push 0
push esi
call eax
mov ecx, 0x449624
push eax
call fcn.0043c5e0
xor ebx, ebx
test al, al
je 0x40b8da
push 0xe2bceb04
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x44962c], eax
push 0x248106fa
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449630], eax
push 0x89b8457d
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449634], eax
push 0x44f824fb
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449638], eax
push 0xf072343c
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x44963c], eax
push 0x638f2392
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449640], eax
push 0xd711af57
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449644], eax
push 0x1ad145e2
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449648], eax
push 0xedb83653
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x44964c], eax
push 0xe9e47300
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449650], eax
push 0x6b702a5b
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449654], eax
push 0xc135ffae
push dword [0x449624]
call fcn.0043e870
add esp, 8
mov dword [0x449658], eax
lea edi, [esp + 0x10b]
lea eax, [esp + 0x10c]
push eax
push dword [ebx + 0x4423e4]
call fcn.00437f90
add esp, 8
mov ebp, edi
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp + 1], 0
lea ebp, [ebp + 1]
jne 0x40b2f0
mov dword [esp], 0
mov eax, esi
lea ecx, [esp + 0x10c]
cmp ecx, ebp
jae 0x40b371
xor esi, esi
lea edi, [esp + 0x10c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40b360
mov eax, esp
push eax
push ebp
push edi
call fcn.0040d840
add esp, 0xc
movzx edx, word [esp]
lea ecx, [esi + 2]
mov word [esp + esi + 0xc], dx
cmp esi, 0xfb
ja 0x40b34e
add edi, eax
mov esi, ecx
cmp edi, ebp
jb 0x40b320
lea eax, [esp + ecx]
add eax, 0xc
jmp 0x40b366
lea eax, [esp + esi]
add eax, 0xc
lea esi, [esp + 0xc]
lea edi, [esp + 0x10b]
mov word [eax], 0
push esi
call fcn.0040b8f0
add esp, 4
test al, al
jne 0x40b5d8
add ebx, 4
cmp ebx, 0x24
jne 0x40b2d0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x49dc4b22
mov dword [esp + 0x10], 0x4ddc4fda
mov dword [esp + 0x14], 0x712e73e5
mov dword [esp + 0x18], 0x75277725
mov dword [esp + 0x1c], 0x79ec7bed
mov dword [esp + 0x20], 0x7d1d7f1b
mov dword [esp + 0x24], 0x6107630f
mov dword [esp + 0x28], 0x650967f5
mov dword [esp + 0x2c], 0x69fd6b07
mov dword [esp + 0x30], 0x6d056ffc
mov dword [esp + 0x34], 0x91099306
mov dword [esp + 0x38], 0x95f397c4
mov dword [esp + 0x3c], 0x99f59b09
mov dword [esp + 0x40], 0x9d0c9fcd
mov dword [esp + 0x44], 0x81138314
mov dword [esp + 0x48], 0x85ed87ec
mov dword [esp + 0x4c], 0x89ed8be6
mov dword [esp + 0x50], 0x8ddf8f19
mov dword [esp + 0x54], 0xb1eab3e9
mov dword [esp + 0x58], 0xb5eeb7e3
mov dword [esp + 0x5c], 0xb9e9bbeb
mov dword [esp + 0x60], 0xbde5bfe7
mov dword [esp + 0x64], 0xa1f6a3f9
mov dword [esp + 0x68], 0xa5f3a7f2
mov dword [esp + 0x6c], 0xa9f9abfd
mov dword [esp + 0x70], 0xadfcaff7
mov dword [esp + 0x74], 0xd1d0d382
mov word [esp + 0x78], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x6d
ja 0x40b4d4
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 + 0xc]
add eax, 0x96af7158
xor eax, ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
add al, 0xee
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x6e
jb 0x40b4a0
lea eax, [esp + 8]
lea ecx, [esp + 4]
lea edi, [esp + 0xc]
push eax
push ecx
push edi
call fcn.0040bee0
add esp, 0xc
test al, al
je 0x40b8d8
mov dword [esp + 0xc], 0xc7d1d71f
mov dword [esp + 0x10], 0xc6c204d5
mov dword [esp + 0x14], 0x13dedfca
mov dword [esp + 0x18], 0xc6cacd09
mov dword [esp + 0x1c], 0xd5ddd1c6
mov dword [esp + 0x20], 0xcdc3d1c7
mov dword [esp + 0x24], 0xddd8cac8
mov dword [esp + 0x28], 0xe7d0ddcd
mov word [esp + 0x2c], 0x225
mov byte [esp + 0x2e], 0x41
mov dword [esp + 0x2f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x26
ja 0x40b594
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0x1620c641
xor eax, ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
add al, 0xde
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x27
jb 0x40b560
mov ecx, dword [esp + 4]
movzx ebx, byte [esp + 0xc]
test bl, bl
je 0x40b65e
mov edx, edi
mov eax, ecx
jmp 0x40b5bb
movzx ebx, byte [edx]
test bl, bl
je 0x40b660
mov bh, byte [ecx]
test bh, bh
je 0x40b8cc
inc ecx
inc edx
lea esi, [eax + 1]
cmp bh, bl
je 0x40b5d2
mov eax, esi
mov ecx, esi
je 0x40b5b0
mov edx, edi
jmp 0x40b5b0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x40b60f
mov ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx + 0x44965e], ax
movzx eax, word [esp + ecx + 0xc]
add ecx, 2
test ax, ax
jne 0x40b5f0
mov word [ecx + 0x44965e], 0
jmp 0x40b618
mov word [0x449660], 0
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x40b8d8
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x40b8d8
push 0x449600
call fcn.00437370
add esp, 4
mov bl, 1
jmp 0x40b8da
mov eax, ecx
test eax, eax
je 0x40b8cc
mov dword [esp + 0xc], 0xa3a5e0f2
mov dword [esp + 0x10], 0x17eabbb1
mov byte [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 8
ja 0x40b6dd
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
lea esi, [ecx + edx]
add esi, 0xae02cef
add ecx, 0xae02cef
and ecx, edx
mov edx, esi
xor edx, ecx
add edx, ecx
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x10c]
add cl, 0x1f
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 9
jb 0x40b690
movzx edx, byte [esp + 0xc]
mov ecx, eax
test dl, dl
je 0x40b724
lea ebp, [esp + 0xc]
mov edi, ebp
mov ebx, eax
mov ecx, eax
jmp 0x40b707
movzx edx, byte [edi]
test dl, dl
je 0x40b724
mov dh, byte [ebx]
test dh, dh
je 0x40b8cc
inc ebx
inc edi
lea esi, [ecx + 1]
cmp dh, dl
je 0x40b71e
mov ecx, esi
mov ebx, esi
je 0x40b700
mov edi, ebp
jmp 0x40b700
test ecx, ecx
je 0x40b8cc
mov byte [ecx], 0
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ecx + 0x24], 0
lea ecx, [ecx + 1]
jne 0x40b740
mov edx, ecx
inc edx
je 0x40b7f5
test ecx, ecx
je 0x40b7c1
mov esi, edx
and edx, 0xfffffffe
mov edi, edx
xor edx, edx
jmp 0x40b777
add bh, 0x61
mov bl, bh
mov byte [esp + edx + 0x10d], bl
add edx, 2
mov ebx, edi
cmp edi, edx
je 0x40b7c5
movzx ebx, byte [eax + edx + 0x22]
mov bh, bl
add bh, 0x9f
cmp bh, 0x19
ja 0x40b79a
mov bh, bl
add bh, 0xae
cmp bh, 0x1a
jb 0x40b795
add bl, 0x94
mov bh, bl
add bh, 0x61
mov bl, bh
mov byte [esp + edx + 0x10c], bl
movzx ebx, byte [eax + edx + 0x23]
mov bh, bl
add bh, 0x9f
cmp bh, 0x19
ja 0x40b767
mov bh, bl
add bh, 0xae
cmp bh, 0x1a
jb 0x40b762
add bl, 0x94
mov bh, bl
jmp 0x40b762
mov esi, edx
xor edx, edx
mov ebx, esi
test bl, 1
je 0x40b7f5
movzx eax, byte [eax + edx + 0x22]
mov ah, al
add ah, 0x9f
cmp ah, 0x19
ja 0x40b7ee
mov ah, al
add ah, 0xae
cmp ah, 0x1a
jb 0x40b7e9
add al, 0x94
mov ah, al
add ah, 0x61
mov al, ah
mov byte [esp + edx + 0x10c], al
mov byte [esp + ecx + 0x10d], 0
lea ebx, [esp + 0x10b]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x40b810
mov dword [esp], 0
lea edi, [esp + 0xc]
lea ebp, [esp + 0x10c]
mov eax, edi
cmp ebp, ebx
jae 0x40b86d
xor esi, esi
cmp byte [ebp], 0
je 0x40b867
mov eax, esp
push eax
push ebx
push ebp
call fcn.0040d840
add esp, 0xc
movzx edx, word [esp]
lea ecx, [esi + 2]
mov word [esp + esi + 0xc], dx
cmp esi, 0x7b
ja 0x40b85f
add ebp, eax
mov esi, ecx
cmp ebp, ebx
jb 0x40b833
lea eax, [esp + ecx]
add eax, 0xc
jmp 0x40b86d
lea eax, [esp + esi]
add eax, 0xc
mov word [eax], 0
push edi
call fcn.0040b8f0
add esp, 4
test al, al
je 0x40b8cc
mov ebx, eax
movzx ecx, word [esp + 0xc]
mov eax, 0x449660
test cx, cx
je 0x40b8b1
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40b8a0
mov word [eax], 0
push dword [esp + 4]
call fcn.0043b3e0
add esp, 4
test bl, bl
jne 0x40b618
jmp 0x40b8d8
push dword [esp + 4]
call fcn.0043b3e0
add esp, 4
xor ebx, ebx
mov eax, ebx
add esp, 0x18c
pop esi
pop edi
pop ebx
pop ebp
ret