Function at 0x4035a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
xor esi, esi
push ebx
sub esp, 0x594
mov dword [ebp - 0x588], eax
xor eax, eax
mov ebx, dword [ebp + 0x14]
mov word [ebp - 0x4da], ax
xor eax, eax
mov word [ebp - 0x40e], ax
xor eax, eax
mov dword [ebp - 0x580], edx
xor edx, edx
mov dword [ebp - 0x584], ecx
xor ecx, ecx
mov dword [ebp - 0x4ee], 0x6e0069
mov dword [ebp - 0x4ea], 0x650074
mov dword [ebp - 0x4e6], 0x660072
mov dword [ebp - 0x4e2], 0x630061
mov dword [ebp - 0x4de], 0x200065
mov dword [ebp - 0x42a], 0x690064
mov dword [ebp - 0x426], 0x700073
mov dword [ebp - 0x422], 0x6e0069
mov dword [ebp - 0x41e], 0x650074
mov dword [ebp - 0x41a], 0x660072
mov dword [ebp - 0x416], 0x630061
mov dword [ebp - 0x412], 0x200065
mov dword [ebp - 0x4ac], 0x650068
mov dword [ebp - 0x4a8], 0x70006c
mov dword [ebp - 0x4a4], 0x6f0063
mov dword [ebp - 0x4a0], 0x74006e
mov dword [ebp - 0x49c], 0x780065
mov dword [ebp - 0x498], 0x74
mov dword [ebp - 0x52a], 0x700061
mov dword [ebp - 0x526], 0x6f0070
mov dword [ebp - 0x522], 0x6a0062
mov dword [ebp - 0x51e], 0x630065
mov word [ebp - 0x52c], ax
xor eax, eax
mov word [ebp - 0x54e], ax
xor eax, eax
mov word [ebp - 0x568], ax
mov eax, ebx
mov dword [ebp - 0x51a], 0x74
mov dword [ebp - 0x516], 0x610063
mov dword [ebp - 0x512], 0x63006e
mov dword [ebp - 0x50e], 0x650072
mov dword [ebp - 0x50a], 0x740061
mov dword [ebp - 0x506], 0x65
mov dword [ebp - 0x53c], 0x69006c
mov dword [ebp - 0x538], 0x650063
mov dword [ebp - 0x534], 0x73006e
mov dword [ebp - 0x530], 0x640065
mov dword [ebp - 0x502], 0x720070
mov dword [ebp - 0x4fe], 0x640065
mov dword [ebp - 0x4fa], 0x630065
mov dword [ebp - 0x4f6], 0x69006c
mov dword [ebp - 0x4f2], 0x64
mov dword [ebp - 0x55a], 0x690068
mov dword [ebp - 0x556], 0x640064
mov dword [ebp - 0x552], 0x6e0065
mov dword [ebp - 0x54c], 0x6f0063
mov dword [ebp - 0x548], 0x74006e
mov dword [ebp - 0x544], 0x6f0072
mov dword [ebp - 0x540], 0x6c
mov dword [ebp - 0x570], 0x750064
mov dword [ebp - 0x56c], 0x6c0061
mov dword [ebp - 0x462], 0x6f006e
mov dword [ebp - 0x45e], 0x65006e
mov dword [ebp - 0x45a], 0x740078
mov dword [ebp - 0x456], 0x6e0065
mov dword [ebp - 0x452], 0x690073
mov dword [ebp - 0x44e], 0x6c0062
mov word [ebp - 0x4c4], dx
mov edx, 0x40f1a8
mov word [ebp - 0x464], cx
mov dword [ebp - 0x44a], 0x65
mov dword [ebp - 0x446], 0x6c006f
mov dword [ebp - 0x442], 0x610065
mov dword [ebp - 0x43e], 0x740075
mov dword [ebp - 0x43a], 0x6d006f
mov dword [ebp - 0x436], 0x740061
mov dword [ebp - 0x432], 0x6f0069
mov dword [ebp - 0x42e], 0x6e
mov dword [ebp - 0x4d8], 0x650072
mov dword [ebp - 0x4d4], 0x740073
mov dword [ebp - 0x4d0], 0x690072
mov dword [ebp - 0x4cc], 0x740063
mov dword [ebp - 0x4c8], 0x640065
mov dword [ebp - 0x47c], 0x670061
mov dword [ebp - 0x478], 0x720067
mov dword [ebp - 0x474], 0x670065
mov dword [ebp - 0x470], 0x740061
mov dword [ebp - 0x46c], 0x620061
mov dword [ebp - 0x468], 0x65006c
mov dword [ebp - 0x4c2], 0x650072
mov dword [ebp - 0x4be], 0x6c0070
mov dword [ebp - 0x4ba], 0x630061
mov dword [ebp - 0x4b6], 0x620061
mov dword [ebp - 0x4b2], 0x65006c
mov word [ebp - 0x4ae], si
mov dword [ebp - 0x494], 0x650072
mov dword [ebp - 0x490], 0x650076
mov dword [ebp - 0x48c], 0x730072
mov dword [ebp - 0x488], 0x620065
mov dword [ebp - 0x484], 0x6e0069
mov dword [ebp - 0x480], 0x64
mov dword [ebp - 0x566], 0x720070
mov dword [ebp - 0x562], 0x78006f
mov dword [ebp - 0x55e], 0x79
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 4
je 0x40399f
mov esi, 4
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec esi
jne 0x403978
mov edx, 0x417e38
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, 0x40f1b2
mov eax, ebx
call sym._AddToTLDataStrW
mov esi, 4
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec esi
jne 0x4039a8
mov edx, str.uuid
mov eax, ebx
lea edi, [ebp - 0x40c]
call sym._AddToTLDataStrW
mov edx, 0x40f194
mov eax, ebx
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], edi
mov dword [esp + 8], 0x100
mov dword [esp], eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
sub esp, 0xc
cmp word [ebp - 0x40c], 0
je 0x4040c0
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x403a00
sub eax, edi
sar eax, 1
dec eax
xor ecx, ecx
lea edx, [ebp - 0x40a]
mov word [ebp + eax*2 - 0x40c], cx
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, 0x40f198
mov eax, ebx
call sym._AddToTLDataStrW
mov edi, dword [ebp + 8]
test edi, edi
je 0x403a8d
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403a50
mov edx, str.helpstring
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, 0x40f1b8
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, dword [ebp + 8]
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, 0x40f1be
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x403cb0
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ax, ax
je 0x403b1a
test al, 1
jne 0x403d30
test al, 2
jne 0x403d73
test al, 4
jne 0x403db3
test al, 8
jne 0x403df3
test al, 0x10
jne 0x403e33
test al, 0x20
jne 0x403e73
test al, 0x40
jne 0x403eb3
test al, 0x80
jne 0x403ef3
test ah, 1
jne 0x403f34
test ah, 2
jne 0x403f74
test ah, 4
jne 0x403fb4
test ah, 8
jne 0x403ff4
test ah, 0x20
jne 0x404034
test ah, 0x40
jne 0x404074
mov eax, ebx
mov edx, 0x40f1c4
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 4
je 0x403c98
lea edx, [ebp - 0x4ee]
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, dword [ebp - 0x584]
mov eax, ebx
call sym._AddToTLDataStrW
mov eax, ebx
mov edx, 0x40f1ae
call sym._AddToTLDataStrW
mov eax, dword [ebp - 0x580]
test eax, eax
je 0x403b6c
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 4
jne 0x403bc0
mov eax, ebx
mov edx, 0x40f1d2
call sym._AddToTLDataStrW
cmp word [ebx + 4], 0
lea eax, [ebx + 4]
je 0x403b91
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x403b88
mov edx, 0x7d
jmp 0x403ba7
movzx edx, word [esi + 0x40f1d8]
mov word [eax + esi], dx
add esi, 2
test dx, dx
jne 0x403ba0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0x40f1cc
mov eax, ebx
call sym._AddToTLDataStrW
mov edi, dword [ebp - 0x588]
lea edx, [ebp - 0x578]
mov eax, dword [edi]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [eax + 0x20]
lea edx, [ebp - 0x57c]
mov eax, dword [edi]
sub esp, 0xc
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x578]
mov dword [esp], edi
mov dword [esp + 4], edx
call dword [eax + 0x38]
sub esp, 0xc
test eax, eax
js 0x4040a9
mov eax, dword [ebp - 0x57c]
lea ecx, [ebp - 0x574]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [edx + 0x30]
mov edx, dword [ebp - 0x574]
mov eax, ebx
sub esp, 0x18
call sym._AddToTLDataStrW
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
mov eax, dword [ebp - 0x574]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysFreeString]
mov eax, dword [ebp - 0x57c]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
jmp 0x403b6c
lea edx, [ebp - 0x42a]
mov eax, ebx
call sym._AddToTLDataStrW
jmp 0x403b40
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403cc8
lea edx, [ebp - 0x4ac]
mov eax, ebx
lea edi, [ebp - 0x20c]
call sym._AddToTLDataStrW
mov edx, 0x40f194
mov eax, ebx
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], str.0x_.8lx
mov dword [esp], edi
mov dword [esp + 8], eax
call dword [sym.imp.user32.dll_wsprintfW]
mov edx, edi
mov eax, ebx
call sym._AddToTLDataStrW
mov edx, 0x40f198
mov eax, ebx
call sym._AddToTLDataStrW
jmp 0x403a98
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403d48
mov eax, ebx
lea edx, [ebp - 0x52a]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 2
je 0x403ab4
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403d88
mov eax, ebx
lea edx, [ebp - 0x516]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 4
je 0x403abc
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403dc8
mov eax, ebx
lea edx, [ebp - 0x53c]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 8
je 0x403ac4
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403e08
mov eax, ebx
lea edx, [ebp - 0x502]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 0x10
je 0x403acc
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403e48
mov eax, ebx
lea edx, [ebp - 0x55a]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 0x20
je 0x403ad4
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403e88
mov eax, ebx
lea edx, [ebp - 0x54c]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 0x40
je 0x403adc
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403ec8
mov eax, ebx
lea edx, [ebp - 0x570]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test al, 0x80
je 0x403ae4
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403f08
mov eax, ebx
lea edx, [ebp - 0x462]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 1
je 0x403aed
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403f48
mov eax, ebx
lea edx, [ebp - 0x446]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 2
je 0x403af6
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403f88
mov eax, ebx
lea edx, [ebp - 0x4d8]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 4
je 0x403aff
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x403fc8
mov eax, ebx
lea edx, [ebp - 0x47c]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 8
je 0x403b08
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x404008
mov eax, ebx
lea edx, [ebp - 0x4c2]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 0x20
je 0x403b11
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x404048
mov eax, ebx
lea edx, [ebp - 0x494]
call sym._AddToTLDataStrW
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x36]
test ah, 0x40
je 0x403b1a
mov edx, 0x40f1b2
mov eax, ebx
mov edi, 4
call sym._AddToTLDataStrW
lea esi, [esi]
mov edx, 0x40f1ae
mov eax, ebx
call sym._AddToTLDataStrW
dec edi
jne 0x404088
lea edx, [ebp - 0x566]
mov eax, ebx
call sym._AddToTLDataStrW
jmp 0x403b1a
mov edx, str._failed_
mov eax, ebx
call sym._AddToTLDataStrW
jmp 0x403b6c
mov eax, 0xffffffff
jmp 0x403a0e