Function at 0x404750
Capabilities:
Connect to wmi namespace via wbemlocator
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x190
mov esi, edx
mov edx, dword [edx + 4]
lea edi, [esp + 0x28]
mov dword [esp + 0x154], ecx
mov ecx, edi
push dword [esi + 0xc]
push 2
push dword [esi + 8]
call fcn.00427c60
add esp, 0xc
cmp dword [esp + 0x28], 0x80000000
je 0x406b43
movsd xmm1, qword [esp + 0x38]
movq xmm0, qword [esp + 0x40]
movq xmm2, qword [esp + 0x28]
movsd qword [esp + 0xe0], xmm1
movq xmm1, qword [esp + 0x30]
movq qword [esp + 0xe8], xmm0
movq qword [esp + 0xd0], xmm2
movq qword [esp + 0xd8], xmm1
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x4069b0
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call sub.ole32.dll_CoInitializeSecurity
test eax, eax
js 0x4069b0
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4069e7
mov edx, dword [eax]
movdqa xmm0, xmmword [edx]
lea esi, [edx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x404888
mov dword [esp + 0x78], 0x80000001
mov esi, eax
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 0xbc]
lea ecx, [esp + 0xd0]
push esi
push dword [esp + 0xc4]
call fcn.00428350
add esp, 8
mov dword [esp + 0xe4], 0
lea ecx, [esp + 0x78]
call fcn.0040af50
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x138]
mov ebx, dword [esp + 0x15c]
lea eax, [ebx - 1]
and eax, ebx
dec ecx
je 0x4069e7
test ax, ax
mov dword [esp + 0x13c], ecx
jne 0x4048ba
nop word cs:[eax + eax]
nop
movdqa xmm0, xmmword [esi]
add edx, 0xfffffe80
add esi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x4048a0
not eax
mov dword [esp + 0x15c], eax
tzcnt eax, eax
mov dword [esp + 0x138], esi
mov dword [esp + 0x10c], edx
neg eax
lea ebx, [eax + eax*2]
mov eax, dword [edx + ebx*8 - 0x14]
mov dword [esp + 0xbc], eax
mov eax, dword [edx + ebx*8 - 0x10]
mov dword [esp + 0x28], 0
mov dword [esp + 0xc0], eax
push edi
push 0x59e38c
push 1
push 0
push 0x59e37c
call sub.ole32.dll_CoCreateInstance
test eax, eax
js 0x404820
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x406a2d
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xa8], 0
mov ecx, edi
push dword [esp + 0xc0]
call fcn.00529550
add esp, 4
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp edi, 0x80000014
jne 0x406800
mov eax, dword [ebx]
lea ecx, [esp + 0xa8]
push ecx
push 0
push 0
push pe_nt_image_headers32
push 0
push 0
push 0
push esi
push ebx
call dword [eax + 0xc]
test eax, eax
js 0x40684b
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x406b20
push esi
call sub.oleaut32.dll_SysFreeString
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push edi
call sub.ole32.dll_CoSetProxyBlanket
test eax, eax
mov dword [esp + 0x108], edi
js 0x40688a
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0xc]
lea esi, [eax + ecx*8]
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ebx, dword [esi - 8]
mov esi, dword [esi - 4]
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
push 8
push dword [esp + 0xc4]
push dword [esp + 0xc4]
call fcn.00427090
add esp, 0xc
cmp byte [esp + 0x58], 4
jne 0x4068de
test esi, esi
je 0x4068b4
lea eax, [esi + esi*2]
lea eax, [ebx + eax*4]
mov dword [esp + 0x158], eax
jmp 0x404a4c
push dword [esp + 0x100]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x160]
add ebx, 0xc
cmp ebx, dword [esp + 0x158]
je 0x4068b4
mov edx, dword [ebx + 4]
lea ecx, [esp + 0xfc]
mov dword [esp + 0x160], ebx
push dword [ebx + 8]
call fcn.00447f90
add esp, 4
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0x104]
lea edi, [esp + 0x28]
mov edx, 0x539e8c
mov ecx, edi
push 3
call fcn.00529550
add esp, 4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x1c], esi
cmp eax, 0x80000014
jne 0x404c40
mov dword [esp + 0xc], ecx
mov ecx, edi
mov edx, ebx
push esi
call fcn.00529550
add esp, 4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp eax, 0x80000014
jne 0x404c70
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x28], 0
mov eax, dword [ecx]
push edi
push 0
push 0x30
push esi
push dword [esp + 0x1c]
push ecx
call dword [eax + 0x50]
test eax, eax
js 0x405150
mov ebx, dword [esp + 0x28]
push esi
call sub.oleaut32.dll_SysFreeString
push dword [esp + 0xc]
call sub.oleaut32.dll_SysFreeString
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x80000014
mov ecx, edi
mov edx, ebx
push eax
call fcn.00401960
add esp, 4
cmp dword [esp + 0x28], 0
je 0x405288
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x404b4b
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x406b34
mov dword [0x5a1188], eax
push pe_nt_image_headers32
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x406b34
movsd xmm0, qword [esp + 0x40]
mov edi, 1
mov esi, 0x20
mov dword [esp + 0x110], eax
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [esp + 0x30]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov dword [esp + 0x58], 4
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 1
jmp 0x404bfe
movsd xmm0, qword [esp + 0x40]
mov eax, dword [esp + 0x110]
inc edi
movsd qword [eax + esi + 0x18], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [eax + esi + 0x10], xmm0
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [esp + 0x30]
movq qword [eax + esi + 8], xmm1
movq qword [eax + esi], xmm0
mov dword [esp + 0x60], edi
add esi, 0x20
lea eax, [esp + 0x78]
lea ecx, [esp + 0x28]
mov edx, ebx
push eax
call fcn.00401960
add esp, 4
cmp dword [esp + 0x28], 0
je 0x404c95
cmp edi, dword [esp + 0x58]
jne 0x404bc0
lea ecx, [esp + 0x58]
mov edx, edi
call fcn.0052fdf0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x110], eax
jmp 0x404bc0
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, ecx
lea eax, [esp + 0xa8]
jmp 0x405178
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x74], ecx
jmp 0x405162
test ebx, ebx
je 0x404c9f
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x110]
cmp ecx, 0x80000014
mov dword [esp + 0x20], ecx
mov dword [esp + 0xf4], eax
jne 0x4052c9
mov ebx, edi
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 8
mov dword [esp + 0xcc], 0
shl ebx, 5
add ebx, esi
test edi, edi
je 0x4054fe
mov eax, esi
lea edi, [esp + 0x28]
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 8
mov dword [esp + 0x6c], ebx
jmp 0x404d8a
lea ecx, [esp + 0xc4]
call fcn.0040e9c0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [esp + 0x30]
movq xmm2, qword [esp + 0x38]
movq xmm3, qword [esp + 0x40]
mov eax, edx
inc edx
mov dword [esp + 0x18], ecx
shl eax, 5
mov dword [esp + 0x24], edx
movq qword [ecx + eax + 0x18], xmm3
movq qword [ecx + eax + 0x10], xmm2
movq qword [ecx + eax + 8], xmm1
movq qword [ecx + eax], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], edx
cmp eax, ebx
je 0x4056bf
mov esi, dword [eax]
lea ecx, [eax + 0x20]
mov dword [esp + 0x54], ecx
test esi, esi
je 0x40551e
mov ebx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], eax
call fcn.00527100
test eax, eax
je 0x406a41
movsd xmm0, qword [0x54c2c8]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [0x54c2c0]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
test ebx, ebx
mov dword [eax], edx
mov dword [eax + 4], ecx
movdqu xmmword [esp + 0x38], xmm0
je 0x404e40
lea eax, [ebx + 1]
mov dword [esp + 0x1c], 0
cmp eax, 0x7ffffff
ja 0x404e20
shl eax, 5
add ebx, 0x11
add ebx, eax
jb 0x404e20
cmp ebx, 0x7ffffff1
jb 0x405143
nop dword [eax]
mov ecx, esi
mov dword [esp + 0x70], ebx
sub ecx, eax
mov dword [esp + 0x170], ecx
cmp dword [esp + 0x14], 0
jne 0x404e53
jmp 0x405000
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x14], 0
je 0x405000
movdqa xmm0, xmmword [esi]
lea edi, [esi + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x404e7d
cmp dword [esp + 0x14], 0
mov eax, ebx
je 0x405000
test ax, ax
je 0x404e90
lea ebx, [eax - 1]
and ebx, eax
jmp 0x404eb5
movdqa xmm0, xmmword [edi]
add esi, 0xfffffe00
add edi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x404e90
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebx, eax
and ebx, ecx
tzcnt eax, eax
mov ecx, esi
dec dword [esp + 0x14]
shl eax, 5
sub ecx, eax
mov edx, dword [ecx - 0x18]
mov eax, dword [ecx - 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [ecx - 4]
mov dword [esp + 0xc], eax
mov eax, dword [ecx - 0x1c]
cmp dword [esp + 0xc], 0x80000000
mov dword [esp + 0x88], edx
movsd xmm0, qword [ecx - 0xc]
movsd qword [esp + 0x80], xmm0
movq xmm0, qword [ecx - 0x14]
movq qword [esp + 0x78], xmm0
je 0x404ff0
lea ecx, [esp + 0x7c]
mov dword [esp + 0x20], eax
mov edx, eax
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
lea ecx, [esp + 0x164]
movq qword [esp + 0xb0], xmm1
movq qword [esp + 0xa8], xmm0
push dword [esp + 0x10]
call fcn.00447f90
add esp, 4
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x28]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.00423210
add esp, 8
mov eax, dword [esp + 0x58]
cmp eax, 0x80000011
je 0x404f88
add eax, 0x80000000
mov ecx, 0xe
cmp eax, 0x11
cmovae eax, ecx
cmp eax, 0xf
ja 0x404fd5
mov ecx, 0xbffb
bt ecx, eax
jae 0x404faa
cmp dword [esp + 0xc], 0
je 0x404e70
push dword [esp + 0x20]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x404e70
cmp eax, 2
jne 0x404fca
cmp dword [esp + 0x5c], 0
je 0x404f88
push dword [esp + 0x60]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x404f88
lea ecx, [esp + 0x58]
call fcn.0040bcb0
jmp 0x404f88
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x404f88
cmp dword [esp + 0x14], 0
jne 0x40505b
nop word [eax + eax]
cmp dword [esp + 0x70], 0
mov esi, dword [esp + 0x110]
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0x28]
je 0x405129
test eax, eax
je 0x405129
cmp eax, 9
jae 0x405110
mov eax, dword [esp + 0x170]
jmp 0x40511a
add ebx, 0xfffffff0
mov ecx, ebx
mov ebx, edx
call fcn.0040bcb0
mov edx, ebx
nop dword [eax]
lea ebx, [edx - 1]
and ebx, edx
dec dword [esp + 0x14]
je 0x405000
test bx, bx
jne 0x40507b
movdqa xmm0, xmmword [edi]
add esi, 0xfffffe00
add edi, 0x10
pmovmskb ebx, xmm0
cmp ebx, 0xffff
je 0x405060
not ebx
mov edx, ebx
mov ebx, esi
tzcnt eax, edx
shl eax, 5
sub ebx, eax
cmp dword [ebx - 0x20], 0
je 0x4050a7
push dword [ebx - 0x1c]
push 0
push dword [0x5a1188]
mov dword [esp + 0x18], edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0xc]
mov eax, dword [ebx - 0x10]
mov ecx, 0x80000000
xor eax, ecx
mov ecx, 0xe
cmp eax, 0x11
cmovae eax, ecx
cmp eax, 0xf
ja 0x4050f6
mov ecx, 0xbffb
bt ecx, eax
jb 0x405050
cmp eax, 2
jne 0x40503b
cmp dword [ebx - 0xc], 0
je 0x405050
push dword [ebx - 8]
push 0
push dword [0x5a1188]
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x405047
mov eax, dword [ebx - 0xc]
mov ecx, dword [eax]
push eax
mov ebx, edx
call dword [ecx + 8]
jmp 0x405047
mov eax, dword [esp + 0x170]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0xc4]
je 0x404d20
mov ecx, dword [esp + 0x18]
jmp 0x404d3a
mov dword [esp + 0x1c], 0x10
jmp 0x404e20
mov ebx, eax
push esi
call sub.oleaut32.dll_SysFreeString
mov esi, ebx
mov dword [esp + 0x20], 0x80000001
push dword [esp + 0xc]
call sub.oleaut32.dll_SysFreeString
mov ebx, dword [esp + 0x74]
lea eax, [esp + 0xa8]
mov edx, edi
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x24]
cmp ecx, 0x80000001
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
jne 0x40526c
lea ebx, [esp + 0x58]
mov dword [esp + 0xa4], esi
mov byte [esp + 0xa8], 0xc5
lea edx, [esp + 0xd0]
mov ecx, ebx
push 1
push eax
mov esi, eax
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406a5b
mov edi, dword [esp + 0x1c]
mov ecx, ebx
lea edx, [esp + 0xd0]
mov eax, edi
bswap eax
mov dword [esp + 0xa8], eax
push 4
push esi
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406a88
mov ecx, ebx
lea edx, [esp + 0xd0]
push edi
push dword [esp + 0x70]
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
mov eax, dword [esp + 0xa4]
jne 0x406ab5
bswap eax
mov ecx, ebx
lea edx, [esp + 0xd0]
mov dword [esp + 0xa8], eax
push 4
lea eax, [esp + 0xac]
push eax
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406ae2
mov dword [esp + 0xe4], 0
lea ecx, [esp + 0x28]
call fcn.0040af50
cmp dword [esp + 0xfc], 0
jne 0x404a20
jmp 0x404a35
test ebx, ebx
je 0x405292
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [esp + 0x78]
cmp eax, 0x80000014
jne 0x4054cd
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], 8
mov dword [esp + 0x70], 0
lea ecx, [esp + 0xa8]
lea edi, [esp + 0x28]
jmp 0x4057bc
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x8c]
test edi, edi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x74], ecx
je 0x405499
xor ebx, ebx
mov dword [esp + 0xf8], edi
jmp 0x405329
inc ebx
cmp ebx, edi
je 0x405499
mov eax, ebx
shl eax, 5
mov ecx, dword [esi + eax + 4]
test ecx, ecx
mov dword [esp + 0x18], ecx
je 0x405320
add eax, esi
mov dword [esp + 0x170], ebx
mov ecx, dword [eax]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x405450
mov ebx, dword [esp + 0x70]
movdqa xmm0, xmmword [ebx]
lea esi, [ebx + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x405394
add edi, 0xfffffff0
mov ecx, edi
call fcn.0040bcb0
mov edx, dword [esp + 0x10]
nop word cs:[eax + eax]
nop
mov ecx, dword [esp + 0x14]
lea eax, [ecx - 1]
and eax, ecx
mov ecx, dword [esp + 0xc]
dec ecx
je 0x405450
test ax, ax
mov dword [esp + 0xc], ecx
jne 0x4053ba
nop dword [eax]
movdqa xmm0, xmmword [esi]
add ebx, 0xfffffe00
add esi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x4053a0
not eax
mov dword [esp + 0x14], eax
tzcnt eax, eax
mov edi, ebx
shl eax, 5
sub edi, eax
cmp dword [edi - 0x20], 0
je 0x4053e4
push dword [edi - 0x1c]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x10]
mov eax, dword [edi - 0x10]
mov ecx, 0x80000000
xor eax, ecx
mov ecx, 0xe
cmp eax, 0x11
cmovae eax, ecx
cmp eax, 0xf
ja 0x405435
mov ecx, 0xbffb
bt ecx, eax
jb 0x405380
cmp eax, 2
jne 0x405367
cmp dword [edi - 0xc], 0
je 0x405380
push dword [edi - 8]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x405371
mov eax, dword [edi - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x405371
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0xf8]
mov ebx, dword [esp + 0x170]
mov eax, ecx
shl eax, 5
add ecx, eax
cmp ecx, 0xffffffcf
je 0x405320
mov ecx, dword [esp + 0x70]
sub ecx, eax
push dword [ecx - 0x24]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x10]
jmp 0x405320
cmp dword [esp + 0xf4], 0
je 0x4054b6
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x74]
lea eax, [esp + 0xa8]
jmp 0x405178
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
jmp 0x404c5e
mov eax, 8
mov dword [esp + 0x24], 0
mov ecx, esi
lea edi, [esp + 0x28]
sub ebx, ecx
mov dword [esp + 0x18], eax
jne 0x405539
jmp 0x4056bf
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x110]
mov ecx, dword [esp + 0x54]
sub ebx, ecx
mov dword [esp + 0x18], eax
je 0x4056bf
shr ebx, 5
xor eax, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x6c], ebx
jmp 0x40555d
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ebx
je 0x4056bf
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
shl eax, 5
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
mov dword [esp + 0x20], ecx
je 0x405550
add eax, dword [esp + 0x54]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax]
test edx, edx
mov dword [esp + 0x1c], ecx
je 0x405680
mov esi, dword [esp + 0x1c]
movdqa xmm0, xmmword [esi]
lea edi, [esi + 0x10]
pmovmskb eax, xmm0
not eax
jmp 0x4055c0
add ebx, 0xfffffff0
mov ecx, ebx
mov ebx, edx
call fcn.0040bcb0
mov edx, ebx
nop word [eax + eax]
mov ecx, dword [esp + 0xc]
lea eax, [ecx - 1]
and eax, ecx
dec edx
je 0x405680
test ax, ax
jne 0x4055ea
nop word cs:[eax + eax]
nop
movdqa xmm0, xmmword [edi]
add esi, 0xfffffe00
add edi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x4055d0
not eax
mov dword [esp + 0xc], eax
tzcnt eax, eax
mov ebx, esi
shl eax, 5
sub ebx, eax
cmp dword [ebx - 0x20], 0
je 0x405618
push dword [ebx - 0x1c]
push 0
push dword [0x5a1188]
mov dword [esp + 0x20], edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx - 0x10]
mov ecx, 0x80000000
xor eax, ecx
mov ecx, 0xe
cmp eax, 0x11
cmovae eax, ecx
cmp eax, 0xf
ja 0x40566b
mov ecx, 0xbffb
bt ecx, eax
jb 0x4055b0
cmp eax, 2
jne 0x40559c
cmp dword [ebx - 0xc], 0
je 0x4055b0
push dword [ebx - 8]
push 0
push dword [0x5a1188]
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4055a8
mov eax, dword [ebx - 0xc]
mov ecx, dword [eax]
push eax
mov ebx, edx
call dword [ecx + 8]
jmp 0x4055a8
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x110]
mov ebx, dword [esp + 0x6c]
lea edi, [esp + 0x28]
mov eax, ecx
shl eax, 5
add ecx, eax
cmp ecx, 0xffffffcf
je 0x405550
mov ecx, dword [esp + 0x1c]
sub ecx, eax
push dword [ecx - 0x24]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x405550
cmp dword [esp + 0xf4], 0
je 0x4056d8
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0xc4]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x70], eax
je 0x4057a7
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x40588c
mov esi, dword [eax]
mov dword [esp + 0x6c], ecx
movdqa xmm0, xmmword [esi]
lea edi, [esi + 0x10]
pmovmskb ebx, xmm0
cmp ebx, 0xffff
jne 0x405739
nop word cs:[eax + eax]
movdqa xmm0, xmmword [edi]
add esi, 0xfffffe00
add edi, 0x10
pmovmskb ebx, xmm0
cmp ebx, 0xffff
je 0x405720
mov edx, ebx
mov ecx, esi
not edx
tzcnt eax, edx
mov dword [esp + 0x20], edx
shl eax, 5
sub ecx, eax
mov eax, dword [ecx - 0x1c]
mov ecx, dword [ecx - 0x18]
test ecx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
je 0x405bbf
js 0x406b1b
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x40578b
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x406c95
mov dword [0x5a1188], eax
push dword [esp + 0x14]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, eax
test eax, eax
jne 0x405bc4
jmp 0x406c95
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
lea ecx, [esp + 0xa8]
push 7
push str.select__from
push eax
call fcn.0040bf50
add esp, 0xc
cmp dword [esp + 0xa8], 0
je 0x405a2f
mov edx, dword [esp + 0xb0]
lea ecx, [esp + 0x58]
push 5
push 0x53ba0f
push dword [esp + 0xbc]
call fcn.0040bf50
add esp, 0xc
mov eax, dword [esp + 0x58]
test eax, eax
je 0x405a2f
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x78], 0x2c
mov dword [esp + 0x7c], eax
lea edx, [esp + 0x78]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], 1
mov dword [esp + 0x90], 0x2c
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ecx
mov ecx, edi
mov word [esp + 0x9c], 1
call section..text
cmp dword [esp + 0x28], 0x80000000
jne 0x4058a5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], 4
xor esi, esi
xor ebx, ebx
jmp 0x405a38
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x1c], 4
mov dword [esp + 0x20], 0
jmp 0x405e3e
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x4058c8
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x406ca3
mov dword [0x5a1188], eax
push 0x30
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x406ca3
mov ecx, dword [esp + 0x30]
mov esi, eax
mov ebx, 1
mov edi, 0xc
mov dword [esi + 8], ecx
movsd xmm0, qword [esp + 0x28]
movsd qword [esi], xmm0
mov dword [esp + 0xc4], 4
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], 1
movsd xmm2, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x88]
movq xmm0, qword [esp + 0x98]
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x38], xmm1
movq xmm2, qword [esp + 0x78]
movq xmm1, qword [esp + 0x80]
movq qword [esp + 0x48], xmm0
movq qword [esp + 0x30], xmm1
movq qword [esp + 0x28], xmm2
jmp 0x405986
mov eax, dword [esp + 0x16c]
inc ecx
mov ebx, ecx
mov dword [esi + edi + 8], eax
movq xmm0, qword [esp + 0x164]
movq qword [esi + edi], xmm0
mov dword [esp + 0xcc], ecx
add edi, 0xc
lea ecx, [esp + 0x164]
lea edx, [esp + 0x28]
call section..text
cmp dword [esp + 0x164], 0x80000000
je 0x4059cc
cmp ebx, dword [esp + 0xc4]
mov ecx, ebx
jne 0x405960
lea ecx, [esp + 0xc4]
mov edx, ebx
push 1
call fcn.0052fd40
mov ecx, ebx
add esp, 4
mov esi, dword [esp + 0xc8]
jmp 0x405960
mov esi, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0x18]
cmp ebx, 1
jne 0x405fcc
cmp dword [ecx + 8], 1
mov ebx, 1
lea edi, [esp + 0x28]
jne 0x405fdf
mov eax, dword [ecx + 4]
cmp byte [eax], 0x2a
jne 0x40671b
cmp dword [ecx], 0
mov ebx, ecx
je 0x405a1c
push eax
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
test esi, esi
je 0x405a2f
push ebx
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x18]
mov esi, 0x80000000
mov cl, 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], ecx
cmp esi, 0x80000000
jne 0x405e3e
lea ecx, [esp + 0xfc]
lea ebx, [esp + 0x58]
mov edx, edi
mov dword [esp + 0x28], 0x53b9f8
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x5c], 0x410340
mov dword [esp + 0x34], 1
call fcn.00447bd0
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x80]
mov byte [esp + 0xa8], 0xc5
mov ecx, ebx
lea edx, [esp + 0xd0]
push 1
lea ebx, [esp + 0xac]
push ebx
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406bdc
mov eax, edi
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
bswap eax
mov dword [esp + 0xa8], eax
push 4
push ebx
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406c06
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
push edi
push esi
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406c30
mov dword [esp + 0xa8], 0
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
push 4
lea eax, [esp + 0xac]
push eax
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
jne 0x406c5a
cmp dword [esp + 0x78], 0
je 0x405b6a
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esp + 0x20], 0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xe4], 0
jne 0x405b9d
mov esi, dword [esp + 0x18]
nop word cs:[eax + eax]
nop
mov ecx, esi
call fcn.0040a8b0
add esi, 0x20
dec ebx
jne 0x405b90
cmp dword [esp + 0x70], 0
je 0x405275
push dword [esp + 0x18]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x405275
mov ecx, 1
mov eax, dword [esp + 0x6c]
dec eax
mov dword [esp + 0xc], eax
push dword [esp + 0x14]
push dword [esp + 0x14]
mov dword [esp + 0x18], ecx
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x18]
add esp, 0xc
inc ecx
mov eax, 0xffffffff
cmove ecx, eax
mov eax, 4
cmp ecx, 5
cmovb ecx, eax
cmp ecx, 0xaaaaaaa
ja 0x406b1b
lea eax, [ecx*4]
mov dword [esp + 0xa4], ecx
lea ecx, [eax + eax*2]
test ecx, ecx
js 0x406b1b
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
mov dword [esp + 0x110], ecx
test eax, eax
jne 0x405c50
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x406c84
mov dword [0x5a1188], eax
mov ecx, dword [esp + 0x110]
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x406c84
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xa4]
test edx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 1
je 0x405e1b
mov eax, 0xfffffffe
mov dword [esp + 0x10], 1
sub eax, ebx
and eax, dword [esp + 0x20]
jmp 0x405d3f
push ecx
push 0
push eax
mov ebx, ecx
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [esp + 0xc]
mov ecx, ebx
test eax, eax
je 0x406b0f
dec edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edx
push ecx
push dword [esp + 0x114]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x28]
je 0x405dda
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
lea eax, [edx + edx*2]
inc edx
mov dword [esp + 0x10], edx
mov dword [ecx + eax*4], ebx
mov ebx, dword [esp + 0x54]
mov dword [ecx + eax*4 + 4], ebx
mov ebx, dword [esp + 0x14]
mov dword [ecx + eax*4 + 8], ebx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
test edx, edx
mov edx, edx
je 0x405e09
test ax, ax
je 0x405d50
lea ebx, [eax - 1]
and ebx, eax
jmp 0x405d75
movdqa xmm0, xmmword [edi]
add esi, 0xfffffe00
add edi, 0x10
pmovmskb eax, xmm0
cmp eax, 0xffff
je 0x405d50
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebx, eax
and ebx, ecx
tzcnt eax, eax
mov ecx, esi
mov dword [esp + 0x20], ebx
shl eax, 5
sub ecx, eax
mov eax, dword [ecx - 0x1c]
mov ecx, dword [ecx - 0x18]
test ecx, ecx
mov dword [esp + 0x110], eax
je 0x405dd0
js 0x406b1b
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
mov dword [esp + 0xc], edx
test eax, eax
jne 0x405cc0
mov ebx, ecx
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov ecx, ebx
test eax, eax
je 0x406b0f
mov dword [0x5a1188], eax
jmp 0x405cc0
mov eax, 1
jmp 0x405cda
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, 0xffffffff
inc eax
cmove eax, ecx
lea ecx, [esp + 0x28]
push eax
call fcn.0052fd40
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x405d06
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
jmp 0x405e22
mov ebx, 1
mov esi, ecx
mov eax, dword [esp + 0x18]
lea edi, [esp + 0x28]
mov dword [esp + 0x20], 0
cmp esi, 0x80000000
je 0x405a52
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x405fc5
js 0x406b1b
mov eax, dword [esp + 0x100]
mov dword [esp + 0xc], eax
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x405e90
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x406bd0
mov dword [0x5a1188], eax
push ebx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x406bd0
mov esi, eax
mov edi, eax
push ebx
push dword [esp + 0x10]
push esi
call sub.VCRUNTIME140.dll_memcpy
mov edx, esi
add esp, 0xc
cmp ebx, 8
mov eax, esi
lea edi, [esp + 0x28]
jb 0x405fea
movdqa xmm5, xmmword [0x539050]
movdqa xmm6, xmmword [0x539060]
movdqa xmm7, xmmword [0x539070]
xor eax, eax
cmp ebx, 0x20
jb 0x405f86
movdqa xmm5, xmmword [0x539020]
movdqa xmm6, xmmword [0x539030]
movdqa xmm7, xmmword [0x539040]
mov eax, ebx
xor ecx, ecx
and eax, 0xffffffe0
nop word [eax + eax]
movdqu xmm1, xmmword [edx + ecx]
movdqu xmm0, xmmword [edx + ecx + 0x10]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm2, xmm5
paddb xmm3, xmm5
movdqa xmm4, xmm2
pminub xmm4, xmm6
pcmpeqb xmm4, xmm2
movdqa xmm2, xmm3
pminub xmm2, xmm6
pand xmm4, xmm7
pcmpeqb xmm2, xmm3
por xmm4, xmm1
pand xmm2, xmm7
movdqu xmmword [edx + ecx], xmm4
por xmm2, xmm0
movdqu xmmword [edx + ecx + 0x10], xmm2
add ecx, 0x20
cmp eax, ecx
jne 0x405f10
cmp ebx, eax
je 0x405fc1
test bl, 0x18
je 0x405fe8
movdqa xmm5, xmmword [0x539050]
movdqa xmm6, xmmword [0x539060]
movdqa xmm7, xmmword [0x539070]
mov ecx, ebx
and ecx, 0xfffffff8
nop dword [eax + eax]
movq xmm0, qword [edx + eax]
movdqa xmm1, xmm0
paddb xmm1, xmm5
movdqa xmm2, xmm1
pmaxub xmm2, xmm6
pcmpeqb xmm2, xmm1
pandn xmm2, xmm7
por xmm2, xmm0
movq qword [edx + eax], xmm2
add eax, 8
cmp ecx, eax
jne 0x405f90
cmp ebx, ecx
jne 0x405fd9
mov eax, edx
jmp 0x40600e
mov eax, 1
jmp 0x40600e
mov dword [esp + 0x1c], ecx
lea edi, [esp + 0x28]
jmp 0x405a38
add ecx, esi
mov eax, ecx
jmp 0x405fea
mov dword [esp + 0x1c], ecx
jmp 0x405a38
add eax, esi
add esi, ebx
mov dword [esp + 0x74], edx
movzx ecx, byte [eax]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
mov byte [eax], dl
inc eax
cmp eax, esi
jne 0x405ff0
mov eax, dword [esp + 0x74]
mov ecx, edi
lea edx, [esp + 0xd0]
push 9
mov dword [esp + 0xfc], ebx
push ebx
mov dword [esp + 0x7c], eax
push eax
call fcn.00427090
add esp, 0xc
movzx ebx, byte [esp + 0x28]
cmp bl, 4
jne 0x406113
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
test eax, eax
je 0x406135
mov ecx, dword [esp + 0x1c]
lea eax, [eax*4]
xor esi, esi
lea eax, [eax + eax*2]
lea ebx, [ecx + 8]
mov ecx, 1
jmp 0x406099
mov eax, dword [esp + 0xc]
mov byte [ecx + esi], 0
inc esi
add ebx, 0xc
mov dword [esp + 0x30], esi
add eax, 0xfffffff4
je 0x40612b
mov edx, dword [esp + 0x28]
mov edi, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, edx
sub eax, esi
cmp eax, edi
mov eax, dword [ebx - 4]
mov dword [esp + 0x10], eax
jb 0x4060f2
mov dword [esp + 0x14], edx
lea eax, [ecx + esi]
push edi
push dword [esp + 0x14]
push eax
mov dword [esp + 0x1c], edi
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, edi
add esp, 0xc
add esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp esi, edx
mov dword [esp + 0x30], esi
jne 0x406080
lea ecx, [esp + 0x28]
call fcn.0040e930
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
jmp 0x406080
lea ecx, [esp + 0x28]
mov edx, esi
push edi
call fcn.0052fcb0
add esp, 4
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
jmp 0x4060b6
movzx eax, byte [esp + 0x2b]
movzx ecx, word [esp + 0x29]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x2c]
jmp 0x4061d4
mov edi, dword [esp + 0x28]
cmp esi, edi
je 0x406137
jmp 0x40614a
xor esi, esi
lea ecx, [esp + 0x28]
mov edx, esi
call fcn.0040e930
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
lea ecx, [esp + 0x78]
lea edx, [esp + 0xd0]
mov byte [ebx + esi], 0
inc esi
push esi
push ebx
call fcn.00426f60
add esp, 8
test edi, edi
je 0x40617b
push ebx
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx ebx, byte [esp + 0x78]
cmp bl, 4
jne 0x4061c1
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push 0
call fcn.00423570
add esp, 4
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp esi, 0x80000000
jne 0x40623f
mov ecx, ebx
mov dword [esp + 0x14], eax
shr ecx, 8
mov dword [esp + 0xc], ecx
jmp 0x4062e6
movzx eax, byte [esp + 0x7b]
movzx ecx, word [esp + 0x79]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0xf8], 0
mov eax, dword [esp + 0x74]
je 0x4061f9
push eax
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esp + 0x20], 0
mov edi, dword [esp + 0x24]
jne 0x40621d
mov esi, dword [esp + 0x18]
nop dword [eax + eax]
mov ecx, esi
call fcn.0040a8b0
add esi, 0x20
dec edi
jne 0x406210
cmp dword [esp + 0x70], 0
je 0x40636b
push dword [esp + 0x18]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x40636b
lea ecx, [esp + 0x78]
lea edx, [esp + 0xd0]
push eax
mov edi, ebx
push ebx
call fcn.00426f60
add esp, 8
movzx ebx, byte [esp + 0x78]
cmp bl, 4
jne 0x4062b8
test esi, esi
je 0x406273
push edi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
shl eax, 5
cmp byte [esp + 0x20], 0
mov edi, ecx
lea ebx, [ecx + eax]
je 0x4064a9
sub ebx, edi
je 0x4062ad
shr ebx, 5
nop word cs:[eax + eax]
nop
mov ecx, edi
call fcn.0040a8b0
add edi, 0x20
dec ebx
jne 0x4062a0
cmp dword [esp + 0x70], 0
mov bl, 4
jne 0x406314
jmp 0x406326
movzx eax, byte [esp + 0x7b]
movzx ecx, word [esp + 0x79]
shl eax, 0x10
or ecx, eax
test esi, esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
je 0x4062e6
push edi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esp + 0x20], 0
mov edi, dword [esp + 0x24]
jne 0x40630d
mov esi, dword [esp + 0x18]
nop word cs:[eax + eax]
nop
mov ecx, esi
call fcn.0040a8b0
add esi, 0x20
dec edi
jne 0x406300
cmp dword [esp + 0x70], 0
je 0x406326
push dword [esp + 0x18]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0xf8], 0
je 0x406342
push dword [esp + 0x74]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp bl, 4
jne 0x40636b
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xe4], 0
test ebx, ebx
jne 0x40643a
jmp 0x40646e
mov ecx, dword [esp + 0xc]
movzx eax, bl
mov esi, dword [esp + 0xe4]
lea ebx, [esp + 0x28]
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x14]
test esi, esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
je 0x4063f1
mov ecx, ebx
lea edx, [esp + 0xd0]
call fcn.00407a80
movzx ecx, byte [esp + 0x28]
cmp cl, 4
jne 0x406b81
mov ecx, dword [esp + 0xe0]
neg esi
mov eax, 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
sbb eax, eax
push 1
push ebx
push eax
push esi
push ecx
call dword [sym.imp.kernel32.dll_SetFilePointerEx]
test eax, eax
je 0x406ba2
lea ebx, [esp + 0x28]
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0x104]
movq xmm0, qword [esp + 0xfc]
lea ecx, [esp + 0xd0]
mov edx, ebx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x78]
movq qword [esp + 0x28], xmm0
push eax
call fcn.00428170
add esp, 4
mov al, 1
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xe4], 0
test ebx, ebx
je 0x40646e
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + 4]
jmp 0x406456
add esi, 0xc
dec ebx
je 0x40646e
cmp dword [esi - 4], 0
je 0x406450
push dword [esi]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x406450
cmp dword [esp + 0xa4], 0
je 0x40648a
push dword [esp + 0x1c]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0xfc], 0
mov ecx, dword [esp + 0xc]
sete al
or cl, al
cmp cl, 1
jne 0x404a20
jmp 0x404a35
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x4067ab
mov edi, dword [esp + 0x1c]
mov edx, eax
lea eax, [esi + esi*2]
mov dword [esp + 0x12c], ebx
add edx, 0xffffffe0
mov dword [esp + 0x24], edx
lea edx, [ecx + 0x20]
lea eax, [edi + eax*4]
mov dword [esp + 0x140], eax
mov eax, ecx
mov ecx, dword [eax]
lea edi, [eax + 0x20]
test ecx, ecx
je 0x40628e
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x130], edx
lea edx, [esp + 0x2c]
mov dword [esp + 0x134], edi
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x18], ecx
movsd xmm0, qword [eax + 0x14]
movsd qword [edx + 0x10], xmm0
movq xmm0, qword [eax + 4]
movq xmm1, qword [eax + 0xc]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
cmp dword [esp + 0x34], 0
je 0x406b6d
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x1c]
jmp 0x406584
mov eax, dword [esp + 0xf4]
cmp eax, dword [esp + 0x140]
je 0x4066e8
mov esi, dword [eax + 8]
mov edx, dword [esp + 0x150]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x14c]
add eax, 0xc
mov dword [esp + 0xf4], eax
mov dword [esp + 0x14], esi
push esi
mov dword [esp + 0x24], edi
push edi
push dword [esp + 0x150]
push dword [esp + 0x150]
call fcn.0040c410
add esp, 0x10
mov ecx, eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x54], 0
shr ecx, 0x19
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x170], xmm0
mov ecx, dword [esp + 0xc]
and eax, edx
movdqu xmm0, xmmword [ecx + eax]
movdqa xmmword [esp + 0x110], xmm0
pcmpeqb xmm0, xmmword [esp + 0x170]
pmovmskb edi, xmm0
test edi, edi
jne 0x40665e
movdqa xmm1, xmmword [esp + 0x110]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb esi, xmm1
test esi, esi
jne 0x406b6d
mov ecx, dword [esp + 0x54]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esp + 0x54], ecx
jmp 0x4065ee
lea eax, [edi - 1]
and eax, edi
test ax, ax
mov edi, eax
mov eax, esi
je 0x406613
tzcnt ecx, edi
mov ebx, dword [esp + 0xc]
mov esi, eax
add ecx, eax
mov eax, dword [esp + 0x14]
and ecx, edx
shl ecx, 5
sub ebx, ecx
cmp dword [ebx - 0x18], eax
jne 0x406650
push eax
push dword [ebx - 0x1c]
push dword [esp + 0x28]
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x406650
add ebx, 0xfffffff0
lea ecx, [esp + 0x78]
mov edx, ebx
call fcn.00431e70
mov esi, dword [esp + 0x7c]
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
push dword [esp + 0x80]
push esi
call fcn.00426f60
add esp, 8
movzx ebx, byte [esp + 0x58]
cmp bl, 4
jne 0x406728
cmp dword [esp + 0x78], 0
je 0x406570
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x406570
lea ecx, [esp + 0x28]
call fcn.0040a8b0
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x12c]
mov eax, dword [esp + 0x134]
add dword [esp + 0x24], 0xffffffe0
add edx, 0x20
cmp eax, ebx
jne 0x4064db
jmp 0x4062ad
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
jmp 0x405a38
movzx eax, byte [esp + 0x5b]
movzx edx, word [esp + 0x59]
mov ecx, dword [esp + 0x5c]
cmp dword [esp + 0x78], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ecx
je 0x406758
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x28]
call fcn.0040a8b0
mov eax, dword [esp + 0x134]
mov edi, dword [esp + 0x130]
cmp dword [esp + 0x12c], eax
mov eax, dword [esp + 0x24]
je 0x406790
shr eax, 5
mov ecx, edi
mov esi, eax
call fcn.0040a8b0
mov eax, esi
add edi, 0x20
dec eax
jne 0x40677f
mov eax, dword [esp + 0x10]
shl eax, 0x10
add dword [esp + 0xc], eax
cmp dword [esp + 0x70], 0
jne 0x406314
jmp 0x406326
lea edi, [ecx + 0x20]
mov eax, dword [edi - 0x20]
test eax, eax
je 0x40628e
lea esi, [edi - 0x20]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x2c]
mov eax, dword [esi + 0x1c]
mov dword [ecx + 0x18], eax
movsd xmm0, qword [esi + 0x14]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [esi + 4]
movq xmm1, qword [esi + 0xc]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
lea ecx, [esp + 0x28]
call fcn.0040a8b0
add esi, 0x20
add edi, 0x20
cmp esi, ebx
jne 0x4067ae
jmp 0x4062ad
lea eax, [esp + 0x2c]
movq xmm0, qword [eax + 4]
movq xmm1, qword [eax + 0xc]
lea eax, [esp + 0x7c]
movq qword [esp + 0x60], xmm1
movq qword [esp + 0x58], xmm0
movq qword [eax + 0xc], xmm1
movq qword [eax + 4], xmm0
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
cmp edi, 0x80000001
lea edi, [esp + 0x28]
je 0x40482e
jmp 0x404857
mov edi, eax
push esi
call sub.oleaut32.dll_SysFreeString
movq xmm0, qword [esp + 0x58]
movq xmm1, qword [esp + 0x60]
lea eax, [esp + 0x7c]
movq qword [eax + 0xc], xmm1
movq qword [eax + 4], xmm0
mov dword [esp + 0x78], 0x80000001
mov dword [esp + 0x7c], edi
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov esi, edi
lea edi, [esp + 0x28]
jmp 0x40482e
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x78], 0x80000001
mov dword [esp + 0x7c], eax
mov esi, eax
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
lea edi, [esp + 0x28]
jmp 0x40482e
mov byte [esp + 0x28], 0
lea ecx, [esp + 0x58]
lea edx, [esp + 0xd0]
push 1
lea eax, [esp + 0x2c]
push eax
call fcn.00426f60
add esp, 8
cmp byte [esp + 0x58], 4
je 0x40697a
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
test esi, esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
je 0x406958
lea ebx, [esp + 0x28]
lea edx, [esp + 0xd0]
mov ecx, ebx
call fcn.00407a80
movzx ecx, byte [esp + 0x28]
cmp cl, 4
jne 0x406b81
mov ecx, dword [esp + 0xe0]
neg esi
mov eax, 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
sbb eax, eax
push 1
push ebx
push eax
push esi
push ecx
call dword [sym.imp.kernel32.dll_SetFilePointerEx]
test eax, eax
je 0x406ba2
mov dword [esp + 0xe4], 0
mov edx, dword [esp + 0xbc]
lea eax, [esp + 0x78]
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0xc4]
call fcn.00427fb0
add esp, 8
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xe4], 0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x138]
lea edi, [esp + 0x28]
jmp 0x404875
mov dword [esp + 0x28], 0x80000001
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0xd0]
mov edx, str.com_col
push eax
push 3
call fcn.00428350
add esp, 8
lea ecx, [esp + 0x28]
mov dword [esp + 0xe4], 0
call fcn.0040af50
mov eax, dword [esp + 0x154]
movsd xmm1, qword [esp + 0xe0]
movsd xmm0, qword [esp + 0xe8]
movsd xmm2, qword [esp + 0xd0]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0xd8]
movsd qword [eax + 0x18], xmm0
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x59e3c8
call fcn.00532d60
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_595bc6f00369475047538fdae1ff8cea692ac385library_std_src_threadlocal.rs
mov edx, 0x46
push 0x59e09c
push 0x539ea0
push edi
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x78], xmm0
push 0x53b8e8
push 0x539ed0
lea eax, [esp + 0x80]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x78], xmm0
push 0x53b8f8
push 0x539ed0
lea eax, [esp + 0x80]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x78], xmm0
push 0x53b908
push 0x539ed0
lea eax, [esp + 0x80]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x78], xmm0
push 0x53b918
push 0x539ed0
lea eax, [esp + 0x80]
push eax
call fcn.00533020
mov edx, ecx
mov ecx, 1
call fcn.00531970
call fcn.004478d0
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x59e3d8
call fcn.00532d60
mov ecx, 8
mov edx, pe_nt_image_headers32
call fcn.00531970
movsd xmm0, qword [esp + 0x2c]
lea eax, [esp + 0x78]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x78], xmm0
push 0x53baa8
push 0x539ed0
push eax
call fcn.00533020
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x53bbf4
call fcn.00532d60
movzx edx, byte [esp + 0x2f]
movzx eax, word [esp + 0x2d]
mov esi, dword [esp + 0x29]
movzx ecx, cl
shl edx, 0x10
or eax, edx
shld eax, esi, 8
shl esi, 8
or ecx, esi
jmp 0x406baa
call dword [sym.imp.kernel32.dll_GetLastError]
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x2c], eax
push 0x53b8c8
push 0x539ed0
lea eax, [esp + 0x30]
push eax
call fcn.00533020
mov ecx, 1
mov edx, ebx
call fcn.00531970
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x28], xmm0
push 0x53b8e8
push 0x539ed0
lea eax, [esp + 0x30]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x28], xmm0
push 0x53b8f8
push 0x539ed0
lea eax, [esp + 0x30]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x28], xmm0
push 0x53b908
push 0x539ed0
lea eax, [esp + 0x30]
push eax
call fcn.00533020
movsd xmm0, qword [esp + 0x58]
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
movsd qword [esp + 0x28], xmm0
push 0x53b918
push 0x539ed0
lea eax, [esp + 0x30]
push eax
call fcn.00533020
mov edx, dword [esp + 0x110]
mov ecx, 4
call fcn.00531970
mov edx, dword [esp + 0x14]
mov ecx, 1
call fcn.00531970
mov ecx, 4
mov edx, 0x30
call fcn.00531970
int3