Function at 0x411fd0
Capabilities:
Check if file exists
Copy file
Delete file
Encode data using xor
Enumerate files on windows
Get common file path
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x2830
call fcn.004ec9c0
mov esi, ecx
lea ecx, [esp + 0x820]
call 0x411ff1
pop ebx
call fcn.0048e6d0
mov ecx, dword [esp + 0x820]
mov edi, dword [esp + 0x824]
mov edx, dword [esp + 0x828]
mov eax, ecx
neg eax
jno 0x41201c
mov dword [esi], edi
mov dword [esi + 4], edx
jmp 0x413c0f
mov dword [esp + 0x158], ecx
mov ecx, edi
mov dword [esp + 0x14], esi
call fcn.004942f0
test eax, eax
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov dword [esp + 0x15c], edi
je 0x412075
mov esi, edx
lea ecx, [esp + 0x820]
mov edx, eax
push esi
call fcn.0041da70
add esp, 4
xor eax, eax
cmp byte [esp + 0x820], 0
jne 0x41206c
mov eax, dword [esp + 0x824]
mov ecx, dword [esp + 0x828]
jmp 0x412077
xor eax, eax
test eax, eax
mov edx, 0x12
mov ebx, 0x200
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 2
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x10], 2
cmovne edx, ecx
mov dword [esp + 0x30], edx
mov edx, str.Unknown_executableAPPDATARL21.tmp
cmovne edx, eax
mov dword [esp + 0x130], edx
cmp ebx, 0x201
jb 0x4120de
jmp 0x412100
jbe 0x41219a
cmp ebx, 0x201
jae 0x412100
mov dword [esp + 0x20], 0x200
lea esi, [esp + 0x820]
mov edi, ebx
jmp 0x41211b
mov edi, dword [esp + 4]
sub ebx, edi
jne 0x41216d
mov esi, dword [esp + 0x10]
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x20], edi
mov dword [esp + 4], edi
push 0
call dword [sym.imp.kernel32.dll_SetLastError]
mov eax, dword [0x9030a4]
push esi
push edi
call eax
mov ebx, eax
test eax, eax
jne 0x412140
call dword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x415e33
cmp ebx, edi
jne 0x4120d0
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x415e58
lea ebx, [edi + edi]
test edi, edi
mov eax, 0xffffffff
cmovs ebx, eax
cmp ebx, 0x201
jae 0x412100
jmp 0x4120de
lea ecx, [esp + 0x1c0]
mov edx, edi
push 2
push 2
push ebx
call fcn.004f2050
add esp, 0xc
mov eax, dword [esp + 0x1c4]
mov edi, dword [esp + 0x1c0]
mov dword [esp + 0x10], eax
jmp 0x412108
cmp ebx, dword [esp + 0x20]
ja 0x415e58
lea ecx, [esp + 0x3e0]
mov edx, esi
push ebx
call fcn.0048d3f0
add esp, 4
cmp dword [esp + 0x1c0], 0
je 0x4121d5
push dword [esp + 0x1c4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x3e0]
mov eax, esi
neg eax
jo 0x415e58
mov eax, dword [esp + 0x3e4]
mov ecx, dword fs:[0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x10], eax
mov eax, dword [0x903210]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x10]
cmp eax, 1
jne 0x4131c0
mov dword [esp + 0x154], esi
mov ecx, dword fs:[0x2c]
mov eax, dword [0x903210]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x14]
inc dword [esi]
je 0x415e58
mov eax, dword [esi + 0x108]
cmp eax, 0x40
jb 0x412293
mov eax, dword [esi + 0x148]
mov edi, dword [esi + 0x14c]
lea edx, [esi + 8]
cmp eax, 1
mov ecx, edi
sbb ecx, 0
lea ecx, [esi + 0x110]
jl 0x41228c
cmp dword [esi + 0x150], 0
js 0x41228c
add eax, 0xffffff00
adc edi, 0xffffffff
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], edi
call fcn.0040c970
jmp 0x412291
call fcn.00407370
xor eax, eax
mov ecx, dword [esi + eax*4 + 8]
inc eax
mov dword [esi + 0x108], eax
dec dword [esi]
mov dword [esp + 4], ecx
jne 0x4122ba
dec dword [esi + 4]
jne 0x4122ba
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], 0
lea ecx, [esp + 0x820]
mov edx, 0x8a9676
push 7
call fcn.0048e150
add esp, 4
mov eax, dword [esp + 0x820]
mov dword [esp + 0x50], eax
neg eax
jo 0x415e58
mov eax, dword [esp + 0x824]
mov esi, dword [esp + 0x828]
test byte [esp + 0x82c], 1
mov dword [esp + 0xb0], eax
je 0x412347
test esi, esi
js 0x415e58
je 0x4123b7
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
mov edi, eax
test eax, eax
jne 0x4123bc
jmp 0x415e58
test esi, esi
je 0x4123b7
mov edx, dword [esp + 0xb0]
lea eax, [edx + esi]
jmp 0x412366
add edx, 2
cmp ecx, eax
cmovne ecx, edx
nop
cmp ecx, eax
mov edx, ecx
je 0x41231a
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x412360
cmp bl, 0xe0
jb 0x412357
cmp bl, 0xed
jne 0x412396
cmp ecx, eax
je 0x41231a
lea ecx, [edx + 2]
cmp ecx, eax
je 0x41231a
cmp byte [edx + 1], 0x9f
ja 0x415e58
add edx, 3
mov ecx, edx
jmp 0x412360
add edx, 2
cmp ecx, eax
cmove edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, edx
cmp bl, 0xf0
jb 0x412360
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x412360
mov edi, 1
push esi
push dword [esp + 0xb4]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x820], esi
mov dword [esp + 0x824], edi
mov dword [esp + 0x828], esi
mov byte [esp + 0x82c], 0
lea ecx, [esp + 0x820]
mov edx, 0x8a967d
push 8
call fcn.0048f9c0
add esp, 4
mov eax, dword [esp + 0x820]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x824]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x828]
mov dword [esp + 0x18], eax
mov eax, dword [0x903028]
cmp eax, 2
jne 0x4131d2
mov esi, dword [0x903034]
test esi, esi
js 0x415e58
mov ebx, dword [0x903030]
je 0x412464
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, eax
jmp 0x412469
mov edi, 1
push esi
push ebx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x10]
test ecx, ecx
js 0x415e58
mov dword [esp + 0x20], edi
je 0x4124a7
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x10]
xor ecx, ecx
call fcn.0049d570
mov ecx, dword [esp + 0x10]
mov ebx, eax
test eax, eax
jne 0x4124ac
jmp 0x415e58
mov ebx, 1
push ecx
push dword [esp + 0x74]
push ebx
mov edi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x820], edi
mov dword [esp + 0x824], ebx
mov dword [esp + 0x828], edi
mov edi, dword [esp + 0x20]
mov byte [esp + 0x82c], 0
lea ecx, [esp + 0x820]
mov edx, edi
push esi
call fcn.0048f9c0
add esp, 4
test esi, esi
mov eax, dword [esp + 0x820]
mov edx, dword [esp + 0x824]
mov esi, dword [esp + 0x828]
movzx ecx, byte [esp + 0x82c]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x80], edx
mov byte [esp + 0xac], cl
je 0x412534
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 0x7c], esi
mov eax, dword [0x903064]
cmp eax, 2
jne 0x4131f4
mov esi, dword [0x903070]
test esi, esi
js 0x415e58
mov edi, dword [0x90306c]
mov ebx, 1
mov eax, 1
je 0x41257e
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
push esi
push edi
mov dword [esp + 0x28], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4125b5
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x10]
xor ecx, ecx
call fcn.0049d570
mov edi, dword [esp + 0x10]
mov ebx, eax
test eax, eax
je 0x415e58
push edi
push dword [esp + 0x74]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x820], edi
mov dword [esp + 0x824], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x828], edi
mov byte [esp + 0x82c], 0
lea ecx, [esp + 0x820]
mov edx, ebx
push esi
call fcn.0048f9c0
add esp, 4
test esi, esi
mov eax, dword [esp + 0x820]
mov esi, dword [esp + 0x824]
mov edx, dword [esp + 0x828]
movzx ecx, byte [esp + 0x82c]
mov dword [esp + 0x148], eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x1c], edx
mov byte [esp + 0x58], cl
je 0x412639
push ebx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [0x90303c]
cmp eax, 2
jne 0x413216
mov esi, dword [0x903048]
test esi, esi
js 0x415e58
mov edi, dword [0x903044]
mov ebx, 1
mov eax, 1
je 0x41267f
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
push esi
push edi
mov dword [esp + 0x28], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4126b6
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x10]
xor ecx, ecx
call fcn.0049d570
mov edi, dword [esp + 0x10]
mov ebx, eax
test eax, eax
je 0x415e58
push edi
push dword [esp + 0x74]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x820], edi
mov dword [esp + 0x824], ebx
mov dword [esp + 0x828], edi
mov edi, dword [esp + 0x20]
mov byte [esp + 0x82c], 0
lea ecx, [esp + 0x820]
mov edx, edi
push esi
call fcn.0048f9c0
add esp, 4
test esi, esi
mov eax, dword [esp + 0x820]
mov esi, dword [esp + 0x824]
mov edx, dword [esp + 0x828]
movzx ecx, byte [esp + 0x82c]
mov dword [esp + 0x144], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x34], edx
mov byte [esp + 0x78], cl
je 0x41273a
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x205a44
call fcn.0049d570
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x7c]
test eax, eax
je 0x415e58
mov edi, eax
movzx eax, byte [esp + 4]
movd xmm0, eax
mov dword [esp + 0x20], eax
mov eax, 0xffdfa5c0
punpcklbw xmm0, xmm0
pshuflw xmm2, xmm0, 0
pshufd xmm3, xmm2, 0
nop
movdqu xmm0, xmmword [eax + 0x6f98f6]
movdqu xmm1, xmmword [eax + 0x6f9906]
pxor xmm0, xmm3
pxor xmm1, xmm3
movdqu xmmword [edi + eax + 0x205a40], xmm0
movdqu xmmword [edi + eax + 0x205a50], xmm1
add eax, 0x20
jne 0x412780
movd xmm0, dword [0x4f33a0]
mov edx, dword [esp + 0x80]
movdqa xmmword [esp + 0x190], xmm3
movdqa xmmword [esp + 0xc0], xmm2
lea ecx, [esp + 0x820]
pxor xmm0, xmm2
movd dword [edi + 0x205a40], xmm0
push dword [esp + 0x20]
push 0x205a44
push edi
push ebx
call fcn.00411800
add esp, 0x10
movzx eax, byte [esp + 0x820]
cmp al, 4
jne 0x41282b
test ebx, ebx
js 0x415e58
mov dword [esp + 0xc], edi
je 0x41284a
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, ebx
call fcn.0049d570
mov esi, eax
test eax, eax
jne 0x41284f
jmp 0x415e58
mov edx, dword [esp + 0x824]
mov ecx, dword [esp + 0x821]
mov dword [esi + 4], edx
mov dword [esi + 1], ecx
mov byte [esi], al
mov esi, dword [esp + 0x50]
jmp 0x413ad8
mov esi, 1
push ebx
push dword [esp + 0x84]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x44]
jne 0x412873
lea ecx, [esp + 0x44]
call fcn.004aeec0
mov eax, dword [esp + 0x48]
movzx edx, byte [esp + 0xac]
mov ecx, edi
inc edi
shl ecx, 4
mov dword [eax + ecx], ebx
mov dword [eax + ecx + 4], esi
mov dword [eax + ecx + 8], ebx
mov byte [eax + ecx + 0xc], dl
lea eax, [0x8a44b4]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x820], eax
lea eax, [esp + 0x820]
lea eax, [esp + 0x820]
mov ecx, dword [esp + 0x820]
mov dword [esp + 0x820], 0xa7314e85
mov edx, dword [esp + 0x820]
call fcn.0040ae70
mov ecx, 0x19a234f4
mov ebx, 0x219d2ca0
mov edi, 0x524ba24
mov esi, 0xde6e1194
mov edx, 0x97cf68fa
xor ecx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, 0xb8aff62a
xor ecx, dword [eax + 4]
mov dword [esp + 0x64], ecx
mov ecx, 0x8b3836ff
xor ecx, dword [eax + 8]
mov dword [esp + 0x40], ecx
mov ecx, 0x3115918c
xor ecx, dword [eax + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, 0xe7ae53de
xor ecx, dword [eax + 0x10]
mov dword [esp + 0x60], ecx
mov ecx, 0x976523b4
xor ecx, dword [eax + 0x14]
mov dword [esp + 0x3c], ecx
mov ecx, 0x5164fd9d
xor ecx, dword [eax + 0x18]
mov dword [esp + 0xdc], ecx
mov ecx, 0x14306436
xor ecx, dword [eax + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, 0xe63a5cd
xor ecx, dword [eax + 0x20]
mov dword [esp + 0x74], ecx
mov ecx, 0x20d2a7d2
xor ebx, dword [eax + 0x24]
xor edi, dword [eax + 0x28]
xor esi, dword [eax + 0x2c]
xor edx, dword [eax + 0x30]
xor ecx, dword [eax + 0x34]
mov eax, dword [esp + 4]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x600], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x604], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x608], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x610], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x614], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x618], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x61c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x620], eax
mov dword [esp + 0x624], ebx
mov dword [esp + 0x628], edi
mov dword [esp + 0x62c], esi
mov dword [esp + 0x630], edx
mov dword [esp + 0x634], ecx
je 0x412b1b
lea esi, [esp + 0x820]
lea edx, [esp + 0x600]
mov ecx, esi
push 0x38
call fcn.004c7830
add esp, 4
lea ecx, [esp + 0x3e0]
mov edx, esi
call fcn.004ae1d0
cmp dword [esp + 0x3e0], 3
jne 0x412bdd
mov edi, dword [esp + 0x3ec]
mov ebx, dword [esp + 0x3e4]
mov esi, dword [esp + 0x3e8]
lea eax, [esp + 0x3f0]
lea ecx, [esp + 0x1cc]
push 0xb4
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c8], edi
lea edi, [esp + 0x820]
mov dword [esp + 0x1c4], esi
call fcn.004c6330
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x5c]
mov ebx, eax
pxor xmm0, xmm0
mov dword [esp + 0x820], 0
mov dword [esp + 0x828], 0
mov dword [esp + 0x82c], 0
mov dword [esp + 0x830], 7
lea ecx, [esp + 0x88]
movq qword [esp + 0x83a], xmm0
movq qword [esp + 0x834], xmm0
mov byte [esp + 0x83d], 1
mov word [esp + 0x83f], 0x101
push edi
push dword [esp + 0x20]
call fcn.0048ea90
add esp, 8
cmp byte [esp + 0x88], 4
jne 0x412cc8
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 8]
jmp 0x412cee
lea eax, [0x8a9123]
lea esi, [esp + 0x820]
mov dword [esp + 0x820], eax
lea eax, [esp + 0x820]
mov ecx, dword [esp + 0x820]
mov dword [esp + 0x820], 0x45391061
mov edx, dword [esp + 0x820]
call fcn.0040b1e0
mov ecx, 0xe81f51a5
mov edx, 0x4755e6b0
mov edi, 0x8bf0f551
mov ebx, 0x3e09607c
xor ecx, dword [eax]
xor edx, dword [eax + 4]
xor edi, dword [eax + 8]
xor ebx, dword [eax + 0xc]
movzx eax, word [eax + 0x10]
xor al, 0x9f
xor ah, 0xc6
mov dword [esp + 0x820], ecx
mov dword [esp + 0x824], edx
mov dword [esp + 0x828], edi
mov dword [esp + 0x82c], ebx
mov byte [esp + 0x830], al
lea ecx, [esp + 0x108]
mov edx, 0x14
mov byte [esp + 0x831], ah
push 0x12
push esi
call fcn.00403dc0
add esp, 8
movzx eax, byte [esp + 0x108]
cmp al, 4
sete cl
mov byte [esp + 4], cl
jne 0x412cbf
mov edi, dword [esp + 0x1c]
jmp 0x412f57
lea eax, [0x89c760]
mov dword [esp + 0x820], eax
lea eax, [esp + 0x820]
lea eax, [esp + 0x820]
mov ecx, dword [esp + 0x820]
mov dword [esp + 0x820], 0x5d272baa
mov edx, dword [esp + 0x820]
call fcn.0040afa0
mov ecx, 0x42cd3c7a
mov edi, 0xc1216241
mov ebx, 0x404faa55
mov edx, 0x15af4a37
xor ecx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, 0x4d03d5bb
xor ecx, dword [eax + 4]
mov dword [esp + 8], ecx
mov ecx, 0x61d35c23
xor edi, dword [eax + 8]
xor ebx, dword [eax + 0xc]
xor edx, dword [eax + 0x10]
xor ecx, dword [eax + 0x14]
movzx eax, byte [eax + 0x18]
mov esi, dword [esp + 4]
mov dword [esp + 0x820], esi
mov esi, dword [esp + 8]
xor al, 8
mov dword [esp + 0x824], esi
mov dword [esp + 0x828], edi
mov dword [esp + 0x82c], ebx
mov dword [esp + 0x830], edx
mov dword [esp + 0x834], ecx
mov byte [esp + 0x838], al
lea ecx, [esp + 0x108]
mov edx, 0x27
push 0x19
lea eax, [esp + 0x824]
push eax
call fcn.00403dc0
add esp, 8
lea ecx, [esp + 0x3e0]
call fcn.00406560
mov edi, dword [esp + 0xc]
jmp 0x412ecc
mov edi, dword [esp + 0xc]
jmp 0x412f08
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp cl, 4
jne 0x413238
lea edi, [esp + 0x820]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], 0x2000
mov dword [esp + 0x90], 0
mov dword [esp + 0x168], eax
mov dword [esp + 0x94], 0
lea edi, [esp + 0xe0]
mov dword [esp + 0x64], ebx
mov ecx, dword [ecx + 0x24]
mov dword [esp + 4], ecx
push 0
lea eax, [esp + 0x8c]
push eax
push ebx
push edi
call ecx
jmp 0x412d92
add esp, 0x10
movzx eax, byte [esp + 0xe0]
cmp al, 4
je 0x412e1c
movzx eax, al
mov eax, dword [eax*4 + 0x415e6c]
add eax, esi
jmp eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x413420
mov ecx, edi
lea edx, [esp + 0x168]
push eax
push dword [esp + 0x8c]
call fcn.00403c90
add esp, 8
cmp byte [esp + 0xe0], 4
mov edi, dword [esp + 0xc]
jne 0x413471
mov ecx, dword [esp + 4]
mov dword [esp + 0x90], 0
lea edi, [esp + 0xe0]
jmp 0x412d33
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov esi, dword [esp + 0x40]
push dword [esp + 0x168]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [esi]
test eax, eax
je 0x412eae
push ebx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x412ecc
cmp dword [esi + 8], 9
jb 0x412ebd
mov ebx, dword [ebx - 4]
push ebx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [esp + 0x108]
cmp al, 4
sete cl
mov byte [esp + 4], cl
jne 0x412f08
mov edi, dword [esp + 0x1c]
test edi, edi
js 0x415e58
je 0x412f57
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, edi
call fcn.0049d570
mov esi, eax
test eax, eax
jne 0x412f5c
jmp 0x415e58
cmp al, 3
jb 0x412fa6
mov esi, dword [esp + 0x10c]
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
test eax, eax
je 0x412f28
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x412f46
cmp dword [ebx + 8], 9
jb 0x412f37
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x412fa2
mov esi, 1
push edi
push dword [esp + 0x60]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x44]
jne 0x412f7d
lea ecx, [esp + 0x44]
call fcn.004aeec0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov ecx, edi
inc edi
shl ecx, 4
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], esi
mov dword [eax + ecx + 8], edx
mov dh, byte [esp + 0x58]
mov byte [eax + ecx + 0xc], dh
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0xc]
lea ecx, [esp + 0x820]
call fcn.00419700
mov eax, dword [esp + 0x824]
mov ecx, dword [esp + 0x828]
cmp byte [esp + 0x820], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
jne 0x41315f
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x820]
push dword [esp + 0x18]
call fcn.00491060
add esp, 4
mov eax, dword [esp + 0x820]
xor eax, 2
or eax, dword [esp + 0x824]
jne 0x41315f
cmp byte [esp + 0x828], 3
jne 0x413057
mov esi, dword [esp + 0x82c]
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
test eax, eax
je 0x413026
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x413044
cmp dword [ebx + 8], 9
jb 0x413035
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0xc]
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x1afd58
call fcn.0049d570
test eax, eax
je 0x415e58
movdqa xmm2, xmmword [esp + 0xc0]
movdqa xmm3, xmmword [esp + 0x190]
mov esi, eax
mov eax, 0xffe502c0
nop dword [eax + eax]
movdqu xmm0, xmmword [eax + 0x8a963a]
movdqu xmm1, xmmword [eax + 0x8a964a]
pxor xmm0, xmm3
pxor xmm1, xmm3
movdqu xmmword [esi + eax + 0x1afd40], xmm0
movdqu xmmword [esi + eax + 0x1afd50], xmm1
add eax, 0x20
jne 0x413090
movq xmm0, qword [0x4f33b0]
movq xmm1, qword [0x4f33c0]
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x820]
pxor xmm0, xmm2
pxor xmm1, xmm2
pxor xmm2, xmmword [0x4f33d0]
movq qword [esi + 0x1afd40], xmm0
movq qword [esi + 0x1afd48], xmm1
movq qword [esi + 0x1afd50], xmm2
push dword [esp + 0x20]
push 0x1afd58
push esi
mov ebx, dword [esp + 0x40]
push ebx
call fcn.00411800
add esp, 0x10
movzx eax, byte [esp + 0x820]
cmp al, 4
sete cl
mov dword [esp + 0x20], ecx
jne 0x413166
test ebx, ebx
js 0x415e58
je 0x413272
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x34]
xor ecx, ecx
call fcn.0049d570
mov ecx, dword [esp + 0x34]
mov edi, eax
test eax, eax
jne 0x413279
jmp 0x415e58
xor ebx, ebx
jmp 0x4132d6
cmp al, 3
jb 0x4132c3
mov edi, dword [esp + 0x824]
mov ebx, dword [edi + 4]
mov ecx, dword [edi]
mov eax, dword [ebx]
test eax, eax
je 0x41318e
push ecx
mov dword [esp + 0xc], ecx
call eax
mov ecx, dword [esp + 0xc]
add esp, 4
cmp dword [ebx + 4], 0
je 0x4131ac
cmp dword [ebx + 8], 9
jb 0x41319d
mov ecx, dword [ecx - 4]
push ecx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4132bf
test eax, eax
jne 0x415e58
call fcn.004efea0
jmp 0x41221a
mov ecx, 0x903028
mov edx, 0x903028
call fcn.004ef6b0
mov esi, dword [0x903034]
test esi, esi
jns 0x412440
jmp 0x415e58
mov ecx, 0x903064
mov edx, 0x903064
call fcn.004ef6b0
mov esi, dword [0x903070]
test esi, esi
jns 0x412554
jmp 0x415e58
mov ecx, 0x90303c
mov edx, 0x90303c
call fcn.004ef6b0
mov esi, dword [0x903048]
test esi, esi
jns 0x412655
jmp 0x415e58
mov edx, ecx
mov esi, dword [esp + 0x40]
shr edx, 8
mov word [esp + 0x109], dx
mov edx, ecx
shr edx, 0x18
mov byte [esp + 0x10b], dl
mov byte [esp + 0x108], cl
mov dword [esp + 0x10c], eax
mov eax, dword [esi]
test eax, eax
jne 0x412ea8
jmp 0x412eae
mov ecx, ebx
mov edi, 1
push ecx
push dword [esp + 0x6c]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x44]
jne 0x41329a
lea ecx, [esp + 0x44]
call fcn.004aeec0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov ecx, ebx
inc ebx
shl ecx, 4
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], edi
mov dword [eax + ecx + 8], edx
mov dh, byte [esp + 0x78]
mov byte [eax + ecx + 0xc], dh
mov dword [esp + 0x4c], ebx
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x820]
push dword [esp + 0x18]
call fcn.00491060
add esp, 4
mov eax, dword [esp + 0x820]
xor eax, 2
or eax, dword [esp + 0x824]
jne 0x413676
cmp byte [esp + 0x828], 3
jne 0x41335f
mov esi, dword [esp + 0x82c]
mov dword [esp + 0x20], ebx
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
test eax, eax
je 0x41332a
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x413348
cmp dword [ebx + 8], 9
jb 0x413339
mov edi, dword [edi - 4]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x20]
test byte [esp + 4], bl
je 0x413676
mov edx, dword [esp + 0x6c]
lea eax, [esp + 0x820]
pxor xmm0, xmm0
mov dword [esp + 0x820], 0
mov dword [esp + 0x828], 0
mov dword [esp + 0x82c], 0
mov dword [esp + 0x830], 7
lea ecx, [esp + 0x3e0]
movq qword [esp + 0x83a], xmm0
movq qword [esp + 0x834], xmm0
mov byte [esp + 0x83d], 1
mov word [esp + 0x83f], 0x101
push eax
push dword [esp + 0x1c]
call fcn.0048ea90
add esp, 8
cmp byte [esp + 0x3e0], 4
mov esi, dword [esp + 0x14]
je 0x413484
mov ecx, dword [esp + 0x3e0]
mov eax, dword [esp + 0x3e4]
cmp cl, 4
je 0x41348b
mov edx, ecx
shr edx, 8
mov word [esi + 1], dx
mov edx, ecx
shr edx, 0x18
mov byte [esi + 3], dl
mov byte [esi], cl
mov dword [esi + 4], eax
jmp 0x4138f1
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x820]
push dword [esp + 0x1c]
call fcn.00415e80
add esp, 4
cmp byte [esp + 0x820], 4
mov edi, dword [esp + 0xc]
jne 0x414a2c
mov byte [esp + 0x108], 4
push dword [esp + 0x168]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, dword [esp + 0x40]
mov eax, dword [esi]
test eax, eax
jne 0x412ea8
jmp 0x412eae
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
jmp 0x412e83
mov eax, dword [esp + 0x3e4]
mov dword [esp + 0x1c0], eax
call fcn.0042d370
mov esi, eax
mov dword [esp + 0x820], 0
mov dword [esp + 0x824], 1
mov dword [esp + 0x828], 0
lea ecx, [esp + 0x820]
mov dword [esp + 4], 0
xor edx, edx
push 1
push 1
push 0x3a
call fcn.004f2050
add esp, 0xc
mov ebx, esi
lea edi, [esi + 8]
add ebx, 0x110
mov dword [esp + 0x20], edi
jmp 0x413515
mov edi, dword [esp + 4]
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789w]
lea ecx, [esp + 0x820]
inc edi
call fcn.00409380
mov dword [esp + 4], edi
cmp edi, 0x3a
mov edi, dword [esp + 0x20]
je 0x413587
mov ecx, dword [esi + 0x108]
jmp 0x413544
mov ecx, ebx
mov edx, edi
call fcn.00407370
xor ecx, ecx
mov eax, 0x3e
mul dword [esi + ecx*4 + 8]
inc ecx
mov dword [esi + 0x108], ecx
not eax
test eax, 0xf8000000
jne 0x4134f0
cmp ecx, 0x40
jb 0x41352b
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x14c]
cmp eax, 1
mov edx, ecx
sbb edx, 0
jl 0x413520
cmp dword [esi + 0x150], 0
js 0x413520
add eax, 0xffffff00
mov edx, edi
adc ecx, 0xffffffff
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], ecx
mov ecx, ebx
call fcn.0040c970
jmp 0x413529
mov edi, dword [esp + 0x820]
mov eax, dword [esp + 0x824]
mov ebx, dword [esp + 0x828]
dec dword [esi]
jne 0x4135b8
dec dword [esi + 4]
jne 0x4135b8
push esi
push 0
push dword [0x903200]
mov esi, eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, esi
lea ecx, [esp + 0x820]
lea edx, [esp + 0x1c0]
push ebx
mov dword [esp + 8], eax
push eax
call fcn.00403c90
add esp, 8
movzx eax, byte [esp + 0x820]
cmp al, 4
jne 0x414645
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x820]
push dword [esp + 0x18]
call fcn.00415e80
add esp, 4
movzx eax, byte [esp + 0x820]
mov esi, dword [esp + 0x14]
cmp al, 4
jne 0x4149e6
mov eax, dword [0x90303c]
cmp eax, 2
jne 0x415d71
mov edx, dword [esp + 0x130]
lea ecx, [esp + 0x820]
push dword [0x903048]
push dword [0x903044]
push dword [esp + 0x38]
call fcn.00416170
add esp, 0xc
movzx eax, byte [esp + 0x820]
cmp al, 4
jne 0x4149e6
test edi, edi
je 0x413669
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x1c0]
call dword [sym.imp.kernel32.dll_CloseHandle]
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x20
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, dword [esp + 0x1c]
test edi, edi
js 0x415e58
mov esi, eax
je 0x4136ba
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, edi
call fcn.0049d570
test eax, eax
jne 0x4136bf
jmp 0x415e58
mov eax, 1
push edi
push dword [esp + 0x60]
mov dword [esp + 0xc], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x34]
test edi, edi
js 0x415e58
je 0x413700
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x34]
xor ecx, ecx
call fcn.0049d570
mov edi, dword [esp + 0x34]
mov ebx, eax
test eax, eax
jne 0x413705
jmp 0x415e58
mov ebx, 1
push edi
push dword [esp + 0x6c]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + 0x78]
test eax, eax
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
mov ah, byte [esp + 0x58]
mov byte [esi + 0xc], ah
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], edi
mov byte [esi + 0x1c], dl
je 0x413751
push ecx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esi + 0x10]
test edi, 0x7fffffff
je 0x41376a
push dword [esi + 0x14]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, 0x200
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 2
mov dword [esp + 0x1c8], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 2
cmp edi, 0x201
jb 0x4137ce
jmp 0x4137f0
jbe 0x413889
cmp edi, 0x201
jae 0x4137f0
mov dword [esp + 0x20], 0x200
lea ebx, [esp + 0x820]
mov esi, edi
jmp 0x41380b
mov esi, dword [esp + 4]
sub edi, esi
jne 0x41385c
mov ebx, dword [esp + 8]
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x20], esi
mov dword [esp + 4], esi
push 0
call dword [sym.imp.kernel32.dll_SetLastError]
push ebx
push esi
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
test eax, eax
jne 0x41382f
call dword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x413a2e
cmp edi, esi
jne 0x4137c0
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x415e58
lea edi, [esi + esi]
test esi, esi
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x4137f0
jmp 0x4137ce
lea ecx, [esp + 0x1c0]
mov edx, esi
push 2
push 2
push edi
call fcn.004f2050
add esp, 0xc
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
mov dword [esp + 8], eax
jmp 0x4137f8
cmp edi, dword [esp + 0x20]
ja 0x415e58
lea ecx, [esp + 0x3e0]
mov edx, ebx
push edi
call fcn.0048d3f0
add esp, 4
cmp dword [esp + 0x1c0], 0
je 0x4138c4
push dword [esp + 0x1c4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x3e0]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x3e4]
mov esi, dword [esp + 0x3e8]
mov dword [esp + 0x190], eax
neg eax
jno 0x4138fa
mov eax, dword [esp + 0x14]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov esi, dword [esp + 0x50]
jmp 0x413abf
test esi, esi
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 4
mov dword [esp + 0xbc], 0
mov dword [esp + 0x18], ebx
je 0x413a61
js 0x415e58
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
push esi
push ebx
mov dword [esp + 0x28], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, eax
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x820]
mov dword [esp + 0x820], esi
mov dword [esp + 0x824], edi
mov dword [esp + 0x828], esi
mov byte [esp + 0x82c], 0
mov edx, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_n
push 1
call fcn.0048f9c0
add esp, 4
mov eax, dword [esp + 0x820]
mov edi, dword [esp + 0x824]
lea ecx, [esp + 0x600]
mov dword [esp + 8], eax
mov edx, edi
push dword [esp + 0x828]
call fcn.0048e3d0
add esp, 4
mov eax, dword [esp + 0x600]
mov ebx, dword [esp + 0x604]
mov ecx, eax
neg ecx
mov ecx, dword [esp + 0x608]
jno 0x413c17
mov dword [esp + 4], ecx
mov esi, ebx
shr ebx, 8
cmp dword [esp + 8], 0
je 0x413a14
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x20]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0xc]
mov eax, esi
jmp 0x413a6b
call dword [sym.imp.kernel32.dll_GetLastError]
mov byte [esp + 0x3e4], 0
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3e0], 0x80000000
cmp dword [esp + 0x1c0], 0
jne 0x4138af
jmp 0x4138c4
mov dword [esp + 4], 3
xor eax, eax
movzx esi, al
shl ebx, 8
mov eax, 4
or esi, ebx
cmp dword [esp + 0xb4], 0
mov ebx, dword [esp + 0x18]
je 0x413a95
push eax
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x190], 0
je 0x413abf
push ebx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x64], 0
je 0x413ad8
push dword [esp + 0x40]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x144], 0
je 0x413b03
push dword [esp + 0x68]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x148], 0
je 0x413b1f
push dword [esp + 0x5c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x14c], 0
je 0x413b3e
push dword [esp + 0x80]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x150], 0
je 0x413b5a
push dword [esp + 0x6c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
test esi, esi
je 0x413b73
push dword [esp + 0xb0]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
test edi, edi
mov dword [esp + 4], eax
je 0x413bba
mov eax, dword [esp + 4]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
lea ebx, [eax + 4]
jmp 0x413ba6
add ebx, 0x10
dec edi
je 0x413bba
cmp dword [ebx - 4], 0
je 0x413ba0
push dword [ebx]
push 0
push dword [0x903200]
call esi
jmp 0x413ba0
cmp dword [esp + 0x44], 0
je 0x413bd3
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x154], 0
mov esi, dword [esp + 0x15c]
je 0x413bf6
push dword [esp + 0x70]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x158], 0
je 0x413c0f
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x820], eax
mov dword [esp + 0xc0], edi
mov dword [esp + 0x828], ecx
lea edi, [esp + 0x820]
lea ecx, [esp + 0x88]
mov dword [esp + 0x824], ebx
mov edx, edi
push 1
call fcn.0048f480
add esp, 4
mov ecx, dword [esp + 0x88]
mov eax, ecx
neg eax
jno 0x413c88
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov edi, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov esi, ebx
shr ebx, 8
cmp dword [esp + 8], 0
jne 0x413a05
jmp 0x413a14
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x30], ecx
push 0x250
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push edi
mov dword [esp + 0x134], ebx
push ebx
call dword [sym.imp.kernel32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x413dde
mov edi, eax
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x18
call fcn.0049d570
test eax, eax
je 0x415e58
mov ecx, dword [esp + 0x20]
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], esi
mov dword [esp + 0x54], eax
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], esi
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x820]
movsd xmm2, qword [esp + 0x830]
movsd xmm1, qword [esp + 0x838]
movsd xmm0, qword [esp + 0x828]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x824]
movsd qword [esp + 0x1c8], xmm2
movsd qword [esp + 0x1d0], xmm1
movq xmm2, qword [esp + 0x840]
movd xmm1, dword [esp + 0x84c]
movsd qword [esp + 0x1c0], xmm0
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x848]
movq qword [esp + 0x1d8], xmm2
movdqa xmmword [esp + 0x1b0], xmm1
mov dword [esp + 0x1e0], eax
movzx eax, word [esp + 0x850]
mov word [esp + 0x86], ax
lea eax, [esp + 0x852]
push 0x21e
push eax
lea eax, [esp + 0x3e8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x30], 0
je 0x413dc4
push dword [esp + 0x130]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x74]
mov esi, 1
shr eax, 8
cmp dword [esp + 8], 0
mov dword [esp + 0x160], eax
jmp 0x413e5a
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
mov dword [esp + 4], eax
jne 0x4149b1
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x18
call fcn.0049d570
test eax, eax
je 0x415e58
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x20]
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [eax + 8], esi
mov dword [esp + 0x54], eax
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], esi
mov byte [eax + 0x14], 0
je 0x413e4a
push dword [esp + 0x130]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
xor esi, esi
cmp dword [esp + 8], 0
mov dword [esp + 0x74], eax
mov edi, 0xffffffff
mov ebx, dword [esp + 0x18]
je 0x413e75
push dword [esp + 0xc0]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movsd xmm1, qword [esp + 0x1c8]
movsd xmm0, qword [esp + 0x1c0]
movq xmm2, qword [esp + 0x1d0]
mov eax, dword [esp + 0x1e0]
movsd qword [esp + 0x170], xmm1
movq xmm1, qword [esp + 0x1d8]
movsd qword [esp + 0x168], xmm0
movq qword [esp + 0x178], xmm2
mov dword [esp + 0x188], eax
movq qword [esp + 0x180], xmm1
push 0x21e
lea eax, [esp + 0x3e4]
push eax
lea eax, [esp + 0x608]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movdqa xmm0, xmmword [esp + 0x1b0]
mov dword [esp + 0xdc], edi
movd eax, xmm0
pextrw ecx, xmm0, 1
cmp ax, 0x2e
sete al
test ecx, ecx
sete dl
and dl, al
cmp cx, 0x2e
sete cl
and cl, al
cmp word [esp + 0x86], 0
sete al
and al, cl
or al, dl
mov byte [esp + 0x3c], al
mov dword [esp + 0x30], eax
jmp 0x413f34
xor esi, esi
cmp edi, 0xffffffff
je 0x414524
cmp esi, 1
setne al
or al, byte [esp + 0x3c]
test al, 1
je 0x414069
push 0x250
push 0
lea esi, [esp + 0x828]
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
nop word cs:[eax + eax]
push esi
push edi
call dword [sym.imp.kernel32.dll_FindNextFileW]
test eax, eax
je 0x414120
mov eax, dword [esp + 0x84c]
movzx ecx, word [esp + 0x84e]
mov edx, eax
xor edx, 0x2e
or dx, cx
je 0x413f70
cmp ax, 0x2e
jne 0x413fb0
cmp cx, 0x2e
jne 0x413fb0
cmp word [esp + 0x850], 0
je 0x413f70
mov esi, dword [esp + 0x54]
lock inc dword [esi]
jle 0x415e58
mov ebx, dword [esp + 0x820]
mov eax, dword [esp + 0x824]
mov dword [esp + 0x30], ebx
shrd ebx, eax, 8
mov dword [esp + 4], eax
lea eax, [esp + 0x82c]
movsd xmm1, qword [eax + 4]
movsd xmm0, qword [eax - 4]
movq xmm2, qword [eax + 0x14]
movsd qword [esp + 0xe8], xmm1
movsd xmm1, qword [eax + 0xc]
mov eax, dword [eax + 0x1c]
movsd qword [esp + 0xe0], xmm0
movq qword [esp + 0xf8], xmm2
movsd qword [esp + 0xf0], xmm1
mov dword [esp + 0x100], eax
movd xmm1, dword [esp + 0x84c]
movzx eax, word [esp + 0x850]
movdqa xmmword [esp + 0x130], xmm1
mov word [esp + 0x38], ax
push 0x21e
lea eax, [esp + 0x856]
push eax
lea eax, [esp + 0x3e8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x3c]
mov edx, ebx
add esp, 0xc
mov ebx, esi
jmp 0x41415e
mov ebx, dword [esp + 0x54]
lock inc dword [ebx]
jle 0x415e58
movsd xmm1, qword [esp + 0x178]
mov eax, dword [esp + 0x188]
movsd xmm0, qword [esp + 0x180]
movq xmm2, qword [esp + 0x168]
movsd qword [esp + 0xf0], xmm1
movq xmm1, qword [esp + 0x170]
mov dword [esp + 0x100], eax
movsd qword [esp + 0xf8], xmm0
movq qword [esp + 0xe0], xmm2
movq qword [esp + 0xe8], xmm1
push 0x21e
lea eax, [esp + 0x604]
push eax
lea eax, [esp + 0x3e8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x164]
movaps xmm0, xmmword [esp + 0x1b0]
movzx esi, word [esp + 0x86]
mov edx, dword [esp + 0x160]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
movaps xmmword [esp + 0x130], xmm0
mov word [esp + 0x38], si
mov ecx, eax
jmp 0x41415e
call dword [sym.imp.kernel32.dll_GetLastError]
mov edx, dword [esp + 0x20]
cmp eax, 0x12
mov ecx, 0
mov esi, dword [esp + 4]
cmovne edx, ecx
cmovne esi, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 4], esi
movzx edx, dl
cmovne edx, ecx
je 0x414524
mov ecx, edx
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x20]
mov eax, edx
movzx esi, cl
shl eax, 8
or esi, eax
test ebx, ebx
je 0x414565
movsd xmm1, qword [esp + 0xf0]
mov eax, dword [esp + 0x100]
movsd xmm0, qword [esp + 0xf8]
movsd xmm2, qword [esp + 0xe0]
mov dword [esp + 0x60], edx
mov dword [esp + 0x30], ecx
movsd qword [esp + 0x98], xmm1
movsd xmm1, qword [esp + 0xe8]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0x88], xmm2
movsd qword [esp + 0x90], xmm1
push 0x21e
lea eax, [esp + 0x3e4]
push eax
lea edi, [esp + 0x828]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0x90]
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0x88]
movsd xmm2, qword [esp + 0x98]
movsd qword [esp + 0x110], xmm1
movsd xmm1, qword [esp + 0xa0]
movsd qword [esp + 0x108], xmm0
movsd qword [esp + 0x118], xmm2
mov dword [esp + 0x128], eax
movsd qword [esp + 0x120], xmm1
push 0x21e
push edi
lea edi, [esp + 0x1c8]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0x118]
lea ecx, [esp + 0x82c]
mov eax, dword [esp + 0x128]
movq xmm0, qword [esp + 0x120]
movq xmm2, qword [esp + 0x108]
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [esp + 0x110]
mov dword [ecx + 0x20], eax
movzx eax, word [esp + 0x38]
movq qword [ecx + 0x18], xmm0
movq qword [ecx], xmm2
movsd qword [ecx + 8], xmm1
movdqa xmm1, xmmword [esp + 0x130]
movd dword [esp + 0x850], xmm1
mov word [esp + 0x854], ax
push 0x21e
push edi
lea eax, [esp + 0x85e]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [esp + 0x820], ebx
mov dword [esp + 0x824], esi
lea edx, [esp + 0x850]
mov ecx, 0x104
mov dword [esp + 0x20], ebx
mov dword [esp + 0x828], eax
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [esp + 8], eax
mov eax, edx
cmp word [eax], 0
je 0x4143cb
cmp word [eax + 2], 0
je 0x4143aa
cmp word [eax + 4], 0
je 0x4143af
cmp word [eax + 6], 0
je 0x4143b4
cmp word [eax + 8], 0
je 0x4143b9
cmp word [eax + 0xa], 0
je 0x4143be
cmp word [eax + 0xc], 0
je 0x4143c3
cmp word [eax + 0xe], 0
je 0x4143c8
add ecx, 0xfffffff8
add eax, 0x10
cmp ecx, 7
ja 0x414309
cmp word [esp + 0xa50], 0
lea eax, [esp + 0xa50]
je 0x4143cb
cmp word [esp + 0xa52], 0
lea eax, [esp + 0xa52]
je 0x4143cb
cmp word [esp + 0xa54], 0
lea eax, [esp + 0xa54]
je 0x4143cb
cmp word [esp + 0xa56], 0
mov esi, 0x104
lea eax, [esp + 0xa56]
jne 0x4143dc
jmp 0x4143cb
add eax, 2
jmp 0x4143cb
add eax, 4
jmp 0x4143cb
add eax, 6
jmp 0x4143cb
add eax, 8
jmp 0x4143cb
add eax, 0xa
jmp 0x4143cb
add eax, 0xc
jmp 0x4143cb
add eax, 0xe
sub eax, edx
cmp eax, 0x20a
jae 0x415e58
shr eax, 1
mov esi, eax
lea ecx, [esp + 0x88]
push esi
call fcn.0048d3f0
add esp, 4
test edi, edi
js 0x415e58
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc0], eax
je 0x414426
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, edi
call fcn.0049d570
mov esi, eax
test eax, eax
jne 0x41442b
jmp 0x415e58
mov esi, 1
push edi
push dword [esp + 0xc]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x3e0], edi
mov dword [esp + 0x3e4], esi
mov dword [esp + 0x3e8], edi
mov byte [esp + 0x3ec], 0
lea ecx, [esp + 0x3e0]
mov edx, ebx
push dword [esp + 0xc0]
call fcn.0048f9c0
add esp, 4
movsd xmm0, qword [esp + 0x3e0]
movsd xmm1, qword [esp + 0x3e8]
cmp dword [esp + 0x88], 0
movsd qword [esp + 0x1a8], xmm1
movsd qword [esp + 0x1a0], xmm0
je 0x4144ab
push ebx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0xbc]
mov edi, dword [esp + 0xdc]
cmp esi, dword [esp + 0xb4]
jne 0x4144ce
lea ecx, [esp + 0xb4]
call fcn.004aeec0
mov eax, dword [esp + 0xb8]
movq xmm0, qword [esp + 0x1a0]
movq xmm1, qword [esp + 0x1a8]
mov ecx, esi
inc esi
shl ecx, 4
movq qword [eax + ecx + 8], xmm1
movq qword [eax + ecx], xmm0
mov dword [esp + 0xbc], esi
mov eax, dword [esp + 0x820]
lock dec dword [eax]
mov ebx, dword [esp + 0x18]
jne 0x413f32
mov ecx, dword [esp + 0x820]
call fcn.00409340
jmp 0x413f32
push edi
call dword [sym.imp.kernel32.dll_FindClose]
mov ecx, dword [esp + 0x54]
lock dec dword [ecx]
jne 0x414539
call fcn.00409340
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov ecx, eax
neg ecx
jno 0x41465c
mov edi, dword [esp + 0xc]
mov dword [esp + 4], edx
jmp 0x413a95
movsd xmm1, qword [esp + 0x98]
mov eax, dword [esp + 0xa8]
movq xmm0, qword [esp + 0xa0]
movq xmm2, qword [esp + 0x88]
movsd qword [esp + 0x118], xmm1
movq xmm1, qword [esp + 0x90]
mov dword [esp + 0x128], eax
movq qword [esp + 0x120], xmm0
movq qword [esp + 0x108], xmm2
movq qword [esp + 0x110], xmm1
push 0x21e
lea eax, [esp + 0x824]
push eax
lea eax, [esp + 0x1c8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push edi
call dword [sym.imp.kernel32.dll_FindClose]
mov ecx, dword [esp + 0x54]
lock dec dword [ecx]
jne 0x4145ed
call fcn.00409340
mov ebx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
test ebx, ebx
je 0x41462a
lea edi, [eax + 4]
mov dword [esp + 0x20], eax
jmp 0x41460e
add edi, 0x10
dec ebx
je 0x41462a
cmp dword [edi - 4], 0
je 0x414608
push dword [edi]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x20]
jmp 0x414608
mov edi, dword [esp + 0xc]
cmp dword [esp + 0xb4], 0
mov ebx, dword [esp + 0x18]
jne 0x413a86
jmp 0x413a95
mov ecx, dword [esp + 0x821]
mov edx, dword [esp + 0x824]
mov esi, dword [esp + 0x14]
jmp 0x4149f4
mov edi, edx
mov dword [esp + 0x3e0], esi
mov dword [esp + 0x3e4], esi
mov dword [esp + 0x3e8], eax
shl edi, 4
add edi, esi
test edx, edx
mov dword [esp + 0x3ec], edi
je 0x41469c
lea eax, [esi + 0x10]
mov dword [esp + 0x3e4], eax
mov ecx, dword [esi]
mov eax, ecx
neg eax
jno 0x4155b4
add esi, 0x10
sub edi, esi
je 0x4146c6
shr edi, 4
add esi, 4
jmp 0x4146ae
add esi, 0x10
dec edi
je 0x4146c6
cmp dword [esi - 4], 0
je 0x4146a8
push dword [esi]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4146a8
cmp dword [esp + 0x3e8], 0
je 0x4146e5
push dword [esp + 0x3e0]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x10
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, eax
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 8
call fcn.0049d570
test eax, eax
je 0x415e58
mov dword [eax], 1
mov dword [eax + 4], 1
mov esi, eax
xor ecx, ecx
mov edx, 8
movzx eax, byte [0x90320d]
call fcn.0049d570
test eax, eax
je 0x415e58
mov dword [eax], 1
mov dword [eax + 4], 1
mov dword [edi], esi
mov dword [edi + 4], 0x8a9688
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0x8a9698
mov dword [esp + 0x600], 2
mov dword [esp + 0x604], edi
mov dword [esp + 4], edi
mov dword [esp + 0x608], 2
call fcn.0042d370
mov edi, eax
lea ebx, [eax + 8]
mov eax, dword [eax + 0x108]
mov esi, edi
add esi, 0x110
jmp 0x4147c0
mov ecx, esi
mov edx, ebx
call fcn.00407370
xor eax, eax
mov ecx, dword [edi + eax*4 + 8]
inc eax
mov dword [edi + 0x108], eax
test ecx, 0x40000000
je 0x414803
cmp eax, 0x40
jb 0x4147ad
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x14c]
cmp eax, 1
mov edx, ecx
sbb edx, 0
jl 0x4147a2
cmp dword [edi + 0x150], 0
js 0x4147a2
add eax, 0xffffff00
mov edx, ebx
adc ecx, 0xffffffff
mov dword [edi + 0x148], eax
mov dword [edi + 0x14c], ecx
mov ecx, esi
call fcn.0040c970
jmp 0x4147ab
mov edx, dword [esp + 4]
shr ecx, 0x1f
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
lock inc dword [eax]
jle 0x415e58
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
dec dword [edi]
mov esi, dword [esp + 0x7c]
jne 0x414844
dec dword [edi + 4]
jne 0x414844
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, 0x140
call fcn.0049d570
test eax, eax
je 0x415e58
mov ebx, eax
xor ecx, ecx
mov edx, 0x30
and ebx, 0xffffffc0
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x84], 0
mov byte [ebx + 0xc0], 0
mov dword [ebx + 0xc4], 0
mov dword [ebx + 0xc8], 4
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 4
mov dword [ebx + 0xd8], 0
mov byte [ebx + 0xdc], 1
mov dword [ebx + 0x100], 1
mov dword [ebx + 0x104], 1
mov byte [ebx + 0x108], 0
movzx eax, byte [0x90320d]
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, eax
test esi, esi
mov eax, 1
mov dword [esp + 4], 1
je 0x414934
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
je 0x415e58
push esi
push dword [esp + 0x84]
mov dword [esp + 0x28], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x41496d
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, esi
call fcn.0049d570
test eax, eax
mov dword [esp + 4], eax
je 0x415e58
mov dword [esp + 0x10], ebx
push esi
push dword [esp + 0x60]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x414a4d
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x34]
xor ecx, ecx
call fcn.0049d570
mov ecx, dword [esp + 0x34]
test eax, eax
jne 0x414a52
jmp 0x415e58
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 0xc0]
je 0x4149d4
push dword [esp + 0x130]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
xor esi, esi
cmp dword [esp + 8], 0
jne 0x413a05
jmp 0x413a14
mov ecx, dword [esp + 0x821]
mov edx, dword [esp + 0x824]
test edi, edi
mov dword [esi + 4], edx
mov dword [esi + 1], ecx
mov byte [esi], al
je 0x414a12
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x1c0]
call dword [sym.imp.kernel32.dll_CloseHandle]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0xc]
jmp 0x413abf
mov eax, dword [esp + 0x820]
mov ecx, dword [esp + 0x824]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], eax
jmp 0x412e91
mov eax, 1
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], eax
add ebx, 0x40
push ecx
push dword [esp + 0x6c]
push eax
mov esi, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
movzx eax, byte [esp + 0xac]
mov ecx, dword [esp + 4]
mov byte [edi + 0xc], al
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
mov ch, byte [esp + 0x58]
mov cl, byte [esp + 0x78]
mov dword [edi + 0x18], eax
mov byte [edi + 0x1c], ch
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], edx
mov dword [edi + 0x28], esi
mov byte [edi + 0x2c], cl
lock inc dword [ebx + 0xc0]
jle 0x415e62
lea eax, [esp + 0x834]
lea ecx, [esp + 0x88]
mov dword [esp + 0x828], 3
mov dword [esp + 0x82c], edi
mov dword [esp + 0x830], 3
mov dword [esp + 0x820], 1
mov dword [esp + 0x824], ebx
mov dword [esp + 0x3ec], 3
mov dword [esp + 0x3e0], 1
mov dword [esp + 0x3e4], ebx
mov dword [esp + 0x834], ecx
mov dword [esp + 0x3e8], eax
mov eax, dword [0x903210]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x414b49
add eax, 0x8c
jmp 0x414b4e
call fcn.0042e2e0
mov eax, dword [eax]
lea esi, [esp + 0x3e0]
mov ecx, 3
xor edx, edx
push esi
push 3
push edi
push 1
push dword [eax + 0x104]
call fcn.00409610
add esp, 0x14
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 3
mov dword [esp + 0x10], ebx
jmp 0x414bba
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4152b7
dec eax
pxor xmm0, xmm0
mov dword [esp + 0x3e8], 0x3b9aca00
mov dword [esp + 0x830], 0
mov dword [esp + 0x34], eax
movdqa xmmword [esp + 0x820], xmm0
xor ecx, ecx
jmp 0x414bf9
call dword [sym.imp.kernel32.dll_SwitchToThread]
inc esi
mov ecx, esi
mov eax, dword [ebx]
mov esi, ecx
mov edx, dword [ebx + 4]
mov ecx, eax
shr ecx, 1
mov edi, ecx
and edi, 0x1f
cmp edi, 0x1f
mov dword [esp + 4], edi
jne 0x414c30
cmp esi, 7
jae 0x414bf0
test esi, esi
je 0x414bf6
mov eax, esi
imul eax, esi
pause
dec eax
jne 0x414c20
jmp 0x414bf6
lea edi, [eax + 2]
test al, 1
mov dword [esp + 0x20], edi
jne 0x414c90
mfence
mov edi, edx
mov ebx, dword [ebx + 0x40]
mov edx, ebx
shr edx, 1
cmp ecx, edx
je 0x414cca
mov edx, dword [esp + 0x20]
xor ebx, eax
xor ecx, ecx
cmp ebx, 0x40
mov ebx, dword [esp + 0x10]
setae cl
or edx, ecx
mov ecx, edx
mov edx, edi
test edx, edx
jne 0x414c98
cmp esi, 7
jae 0x414bf0
test esi, esi
je 0x414bf6
mov eax, esi
imul eax, esi
nop word cs:[eax + eax]
nop
pause
dec eax
jne 0x414c80
jmp 0x414bf6
mov ecx, dword [esp + 0x20]
test edx, edx
je 0x414c67
lock cmpxchg dword [ebx], ecx
je 0x41502e
cmp esi, 6
mov eax, 6
mov ecx, 1
cmovb eax, esi
imul eax, eax
test esi, esi
je 0x414bf9
nop dword [eax]
pause
dec eax
jne 0x414cc0
jmp 0x414bf6
test bl, 1
jne 0x4152b7
mov esi, dword [esp + 0x3e8]
cmp esi, 0x3b9aca00
je 0x414e87
mov eax, dword [esp + 0x3e0]
mov edi, dword [esp + 0x3e4]
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 4], eax
lea eax, [esp + 0x1c0]
push eax
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x415e5a
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
movq xmm0, qword [0x9031f8]
movd edx, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
mov eax, edx
or eax, ecx
jne 0x414daa
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c0], 0
push eax
call dword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x415e5a
mov edx, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x1c4]
movq xmm0, qword [esp + 0x1c0]
mov eax, edx
movq qword [0x9031f8], xmm0
or eax, ecx
je 0x415e58
mov dword [esp + 8], ecx
push ecx
push edx
push edi
push ebx
mov esi, edx
mov dword [esp + 0x8c], edx
call fcn.004ec950
mov dword [esp + 0x58], edi
mov edi, edx
mov ecx, eax
mov dword [esp + 0x78], ebx
mul esi
imul ebx, edi, 0x3b9aca00
imul edi, esi
mov esi, dword [esp + 0x58]
add edi, edx
mov edx, ecx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x78]
imul edx, dword [esp + 8]
add edi, edx
sub ebx, eax
mov eax, ecx
mov ecx, 0x3b9aca00
sbb esi, edi
mul ecx
mov edi, edx
mov dword [esp + 0x58], eax
mov eax, ebx
mov edx, 0x3b9aca00
imul ecx, esi, 0x3b9aca00
add edi, dword [esp + 0xac]
mul edx
add edx, ecx
push dword [esp + 8]
push dword [esp + 0x80]
push edx
push eax
call fcn.004ec950
mov ebx, eax
add ebx, dword [esp + 0x58]
adc edx, edi
push 0
push 0x3b9aca00
push edx
push ebx
call fcn.004ec950
mov esi, edx
mov edi, eax
imul ecx, eax, 0x3b9aca00
xor esi, dword [esp + 0x20]
xor edi, dword [esp + 4]
sub ebx, ecx
xor ecx, ecx
or edi, esi
setne cl
cmp eax, dword [esp + 4]
mov eax, 0xff
sbb edx, dword [esp + 0x20]
cmovb ecx, eax
cmp ebx, dword [esp + 0x1c]
mov eax, 0
sbb eax, eax
test cl, cl
cmovne eax, ecx
cmp al, 2
jb 0x4152b7
mov eax, dword [0x903210]
mov ecx, dword fs:[0x2c]
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x3c]
cmp eax, 1
jne 0x414f5f
mov eax, dword [0x903210]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x40]
mov dword [eax + 0x40], 0
test esi, esi
je 0x414fc6
lea eax, [esp + 0x820]
lea ecx, [esp + 0x3e0]
mov dword [esp + 0xe0], esi
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
lea edx, [esp + 0xe0]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ecx
lea ecx, [esp + 0x1c0]
call fcn.00403ed0
mov eax, dword [0x903210]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 0x40]
mov dword [ecx + 0x40], esi
test eax, eax
mov dword [esp + 0x1c0], eax
je 0x414be2
lock dec dword [eax]
jne 0x414be2
lea ecx, [esp + 0x1c0]
call fcn.00409090
jmp 0x414be2
cmp eax, 2
jne 0x415024
call fcn.004f1a00
lea edx, [esp + 0x820]
lea ecx, [esp + 0x3e0]
mov edi, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ecx
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0xe0]
call fcn.00403ed0
lock dec dword [edi]
jne 0x414be2
lea ecx, [esp + 0xe0]
call fcn.00409090
jmp 0x414be2
call fcn.004f1a00
lea edx, [esp + 0x820]
lea ecx, [esp + 0x3e0]
mov edi, eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ecx
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x108]
call fcn.00403ed0
lock dec dword [edi]
jne 0x414be2
lea ecx, [esp + 0x108]
call fcn.00409090
jmp 0x414be2
call fcn.004ee760
jmp 0x414ea9
cmp dword [esp + 4], 0x1e
mov dword [esp + 8], edx
jne 0x41505e
mov eax, dword [edx]
test eax, eax
je 0x415264
and ecx, 0xfffffffe
mov esi, edx
xor edx, edx
mov edi, ecx
mov ecx, dword [eax]
mov dword [ebx + 4], eax
test ecx, ecx
setne dl
lea ecx, [edi + edx + 2]
mov edx, esi
mov dword [ebx], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x828], edx
mov dword [esp + 0x82c], eax
lea eax, [eax + eax*2]
lea ebx, [edx + eax*4 + 4]
mov eax, dword [edx + eax*4 + 0xc]
test al, 1
jne 0x4150c7
mov esi, 1
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x20], ebx
jmp 0x4150af
mov ebx, ecx
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov ecx, ebx
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 8]
add ecx, esi
inc edi
add esi, 2
test al, 1
jne 0x4150c7
cmp edi, 7
jae 0x415090
test edi, edi
je 0x4150a2
mov eax, ecx
nop word [eax + eax]
pause
dec eax
jne 0x4150c0
jmp 0x4150a2
mov eax, dword [esp + 4]
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
lea ecx, [edx + 4]
lea edx, [eax + 1]
mov dword [esp + 0x1c], edi
cmp edx, 0x1f
jne 0x415121
xor edx, edx
jmp 0x4150f6
inc edx
cmp edx, 0x1e
je 0x41514b
lea eax, [edx + edx*2]
mov ebx, dword [ecx + eax*4 + 8]
test bl, 2
jne 0x4150f0
lea edi, [ecx + eax*4 + 8]
mov eax, dword [edi]
nop dword [eax + eax]
mov ebx, eax
or ebx, 4
lock cmpxchg dword [edi], ebx
jne 0x415110
test al, 2
jne 0x4150f0
jmp 0x41515d
mov eax, dword [ebx + 8]
nop word cs:[eax + eax]
nop
mov edi, eax
or edi, 2
lock cmpxchg dword [ebx + 8], edi
jne 0x415130
test al, 4
je 0x41515d
cmp dword [esp + 4], 0x1c
jbe 0x415230
push dword [esp + 8]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, esi
cmp al, 5
je 0x4152b7
mov ebx, dword [esp + 0x10]
cmp al, 4
je 0x414bae
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x1c0]
mov dword [esp + 0x820], 0x8a96c0
mov dword [esp + 0x824], 2
mov dword [esp + 0x830], 0
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x3e0], edx
mov dword [esp + 0x3e4], fcn.00491f50
mov dword [esp + 0x1c4], ecx
lea ecx, [esp + 0x3e0]
mov dword [esp + 0x828], ecx
lea ecx, [esp + 0x820]
mov dword [esp + 0x82c], 1
call fcn.00493010
cmp byte [esp + 0x1c0], 3
jne 0x414bae
mov esi, dword [esp + 0x1c4]
mov ebx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [ebx]
test eax, eax
je 0x41520a
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x414b9b
cmp dword [ebx + 8], 9
jb 0x414b8c
mov edi, dword [edi - 4]
jmp 0x414b8c
inc edx
cmp edx, 0x1e
je 0x41514b
lea eax, [edx + edx*2]
mov ebx, dword [ecx + eax*4 + 8]
test bl, 2
jne 0x415226
lea edi, [ecx + eax*4 + 8]
mov eax, dword [edi]
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, eax
or ebx, 4
lock cmpxchg dword [edi], ebx
jne 0x415250
test al, 2
jne 0x415226
jmp 0x41515d
mov edi, 1
xor esi, esi
mov dword [esp + 0x20], 0
jmp 0x41529d
mov dword [esp + 0x1c], edi
mov edi, ecx
call dword [sym.imp.kernel32.dll_SwitchToThread]
mov ecx, edi
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 8]
mov eax, dword [edx]
add dword [esp + 0x20], edi
inc esi
add edi, 2
test eax, eax
jne 0x415043
cmp esi, 7
jae 0x415275
test esi, esi
je 0x41528b
mov eax, dword [esp + 0x20]
nop word [eax + eax]
pause
dec eax
jne 0x4152b0
jmp 0x41528b
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
test edi, edi
je 0x415474
mov ebx, dword [esp + 0x48]
shl edi, 4
add ebx, 8
jmp 0x415303
mov eax, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x14]
mov ecx, eax
shrd ecx, edx, 8
mov dword [esp + 8], ecx
cmp al, 4
jne 0x415dab
add ebx, 0x10
add edi, 0xfffffff0
je 0x415474
mov edx, dword [ebx - 4]
lea ecx, [esp + 0x820]
push dword [ebx]
call fcn.00491060
add esp, 4
mov eax, dword [esp + 0x820]
xor eax, 2
or eax, dword [esp + 0x824]
jne 0x41539a
mov eax, dword [esp + 0x828]
cmp al, 4
je 0x4153d1
cmp al, 3
jb 0x4152f7
mov eax, dword [esp + 0x82c]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esi]
test eax, eax
je 0x415361
push ecx
mov dword [esp + 0x24], ecx
call eax
mov ecx, dword [esp + 0x24]
add esp, 4
cmp dword [esi + 4], 0
je 0x41537f
cmp dword [esi + 8], 9
jb 0x415370
mov ecx, dword [ecx - 4]
push ecx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x14]
jmp 0x4152f7
mov eax, dword [esp + 0x86c]
test eax, 0x400
sete cl
test dword [esp + 0x870], 0x20000000
sete dl
or dl, cl
test al, 0x10
sete al
and al, dl
movzx eax, al
shl eax, 8
or eax, 4
cmp al, 4
jne 0x415339
test eax, 0x100
je 0x4152f7
mov edx, dword [ebx - 4]
lea ecx, [esp + 0x3e0]
push dword [ebx]
call fcn.0048e3d0
add esp, 4
mov ecx, dword [esp + 0x3e0]
mov eax, dword [esp + 0x3e4]
mov edx, ecx
neg edx
mov edx, dword [esp + 0x3e8]
jo 0x4152e5
mov dword [esp + 0x820], ecx
mov dword [esp + 0x828], edx
mov dword [esp + 0x824], eax
lea ecx, [esp + 0x1c0]
lea edx, [esp + 0x820]
push 1
call fcn.0048f480
add esp, 4
mov esi, dword [esp + 0x1c0]
mov eax, esi
neg eax
jo 0x4152d3
mov eax, dword [esp + 0x1c4]
mov dword [esp + 4], eax
push eax
call dword [sym.imp.kernel32.dll_DeleteFileW]
test eax, eax
je 0x415d85
test esi, esi
jne 0x41537f
jmp 0x415391
mov byte [esi], 4
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00406160
mov ecx, 1
mov edx, esi
call fcn.00405e70
mov eax, dword [esp + 0x88]
lock dec dword [eax]
jne 0x4154ad
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
call fcn.00469100
lea ecx, [esp + 0x600]
call fcn.00406dd0
cmp dword [esp + 0x190], 0
mov esi, dword [esp + 0x15c]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
je 0x4154e1
push eax
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x64], 0
je 0x4154fa
push dword [esp + 0x40]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x144], 0
je 0x415525
push dword [esp + 0x68]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x148], 0
je 0x415541
push dword [esp + 0x5c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x14c], 0
je 0x415560
push dword [esp + 0x80]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x150], 0
je 0x41557c
push dword [esp + 0x6c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x50], 0
je 0x415598
push dword [esp + 0xb0]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x44]
call fcn.00406d00
cmp dword [esp + 0x154], 0
jne 0x413be4
jmp 0x413bf6
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004942f0
mov dword [esp + 0x20], eax
mov dword [esp + 0xc0], edx
mov eax, dword [0x903028]
cmp eax, 2
jne 0x41585a
mov ebx, dword [0x903034]
test ebx, ebx
js 0x415e58
mov esi, dword [0x903030]
je 0x415616
movzx eax, byte [0x90320d]
xor ecx, ecx
mov edx, ebx
call fcn.0049d570
test eax, eax
je 0x415e58
mov edi, eax
jmp 0x41561b
mov edi, 1
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x20]
test edx, edx
setne al
cmp dword [esp + 0xc0], ebx
sete cl
test al, cl
je 0x415650
push ebx
push edi
push edx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4157f3
test ebx, ebx
je 0x415663
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
call fcn.004942f0
test eax, eax
je 0x415e58
mov edi, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0x20], edx
test edi, edi
je 0x4156a7
movzx eax, byte [0x90320d]
mov edx, dword [esp + 0x10]
xor ecx, ecx
call fcn.0049d570
mov edi, dword [esp + 0x10]
mov ebx, eax
test eax, eax
jne 0x4156ac
jmp 0x415e58
mov ebx, 1
push edi
push dword [esp + 0x74]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esp + 0x820], edi
mov dword [esp + 0x824], ebx
mov dword [esp + 0x828], edi
lea edi, [esp + 0x820]
mov byte [esp + 0x82c], 0
mov edx, esi
mov ecx, edi
push dword [esp + 0x20]
call fcn.0048f9c0
add esp, 4
mov eax, dword [esp + 0x820]
movsd xmm0, qword [esp + 0x828]
mov ebx, dword [esp + 0x824]
mov edx, dword [esp + 4]
mov ecx, edi
mov dword [esp + 0x130], eax
movaps xmmword [esp + 0x20], xmm0
push dword [esp + 8]
call fcn.0048e3d0
movdqa xmm0, xmmword [esp + 0x24]
add esp, 4
mov esi, dword [esp + 0x820]
mov dword [esp + 0xc0], ebx
mov eax, esi
neg eax
jno 0x41575d
mov eax, dword [esp + 0x828]
movzx edx, byte [esp + 0x824]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
jmp 0x4158e7
mov edi, dword [esp + 0x824]
sub esp, 4
lea ecx, [esp + 0x1c4]
mov edx, ebx
movd dword [esp], xmm0
call fcn.0048e3d0
add esp, 4
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
mov ecx, eax
neg ecx
mov ecx, dword [esp + 0x1c8]
jno 0x4157a1
mov dword [esp + 0x38], ecx
jmp 0x4158c2
mov dword [esp + 0x820], eax
mov dword [esp + 0x824], edx
mov dword [esp + 0x828], ecx
lea ecx, [esp + 0x600]
lea edx, [esp + 0x820]
push 1
call fcn.0048f480
add esp, 4
mov ebx, dword [esp + 0x600]
mov eax, ebx
neg eax
jno 0x415801
mov eax, dword [esp + 0x608]
movzx edx, byte [esp + 0x604]
mov dword [esp + 0x38], eax
jmp 0x4158c2
test ebx, ebx
je 0x415afc
push edi
jmp 0x415a78
mov eax, dword [esp + 0x604]
push 2
push edi
mov dword [esp + 0x44], eax
push eax
call dword [sym.imp.kernel32.dll_CreateSymbolicLinkW]
test al, al
je 0x41587c
test ebx, ebx
je 0x415830
push dword [esp + 0x3c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x18]
test esi, esi
je 0x415847
push edi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
movdqa xmm0, xmmword [esp + 0x20]
jmp 0x415a8c
mov ecx, 0x903028
mov edx, 0x903028
call fcn.004ef6b0
mov ebx, dword [0x903034]
test ebx, ebx
jns 0x4155f2
jmp 0x415e58
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x57
mov dword [esp + 0x38], eax
jne 0x4158aa
push 0
push edi
push dword [esp + 0x44]
call dword [sym.imp.kernel32.dll_CreateSymbolicLinkW]
test al, al
jne 0x41581a
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esp + 0x38], eax
test ebx, ebx
je 0x4158c0
push dword [esp + 0x3c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
xor edx, edx
mov ebx, dword [esp + 0x18]
test esi, esi
je 0x4158dd
push edi
push 0
push dword [0x903200]
mov esi, edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, esi
mov esi, dword [esp + 0x14]
movdqa xmm0, xmmword [esp + 0x20]
mov edi, dword [esp + 0xc]
cmp dl, 4
je 0x415a8c
mov esi, edx
mov edx, dword [esp + 4]
lea ecx, [esp + 0x1c0]
push dword [esp + 8]
call fcn.0048e3d0
add esp, 4
mov edx, dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c4]
mov ecx, edx
neg ecx
mov ecx, dword [esp + 0x1c8]
jo 0x41597f
mov dword [esp + 0x820], edx
mov dword [esp + 0x828], ecx
mov dword [esp + 0x824], eax
lea ecx, [esp + 0x600]
lea edx, [esp + 0x820]
push 1
call fcn.0048f480
add esp, 4
mov edi, dword [esp + 0x600]
mov ebx, dword [esp + 0xc0]
mov eax, edi
neg eax
jno 0x415b46
mov eax, dword [esp + 0x604]
mov ecx, dword [esp + 0x608]
mov edi, dword [esp + 0xc]
movdqa xmm0, xmmword [esp + 0x20]
mov dword [esp + 0x824], ecx
mov dword [esp + 0x820], eax
mov ecx, esi
mov eax, dword [esp + 0x824]
movzx edx, byte [esp + 0x820]
mov bl, 1
mov dword [esp + 0x60], eax
cmp cl, 3
jb 0x415a07
mov eax, dword [esp + 0x38]
mov byte [esp + 8], dl
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [edi]
test eax, eax
je 0x4159c8
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x4159e6
cmp dword [edi + 8], 9
jb 0x4159d7
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x38]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0xc]
movdqa xmm0, xmmword [esp + 0x20]
movzx edx, byte [esp + 8]
cmp dl, 4
mov esi, dword [esp + 0x14]
setne al
and bl, al
cmp bl, 1
jne 0x415a88
mov ebx, dword [esp + 0xc0]
cmp dl, 3
jb 0x415a69
mov eax, dword [esp + 0x60]
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [edi]
test eax, eax
je 0x415a39
push esi
call eax
add esp, 4
cmp dword [edi + 4], 0
je 0x415a57
cmp dword [edi + 8], 9
jb 0x415a48
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
push dword [esp + 0x60]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x130], 0
je 0x415afc
push ebx
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x415afc
mov ebx, dword [esp + 0x18]
sub esp, 4
mov edx, dword [esp + 0xc4]
lea ecx, [esp + 0x824]
movd dword [esp], xmm0
call fcn.00415e80
add esp, 4
movzx eax, byte [esp + 0x820]
cmp al, 4
jne 0x415d00
mov esi, dword [esp + 0x4c]
cmp esi, dword [esp + 0x44]
jne 0x415acd
lea ecx, [esp + 0x44]
call fcn.004aeec0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x130]
mov edi, dword [esp + 0xc0]
movdqa xmm0, xmmword [esp + 0x20]
mov ecx, esi
inc esi
shl ecx, 4
mov dword [eax + ecx], edx
mov dword [eax + ecx + 4], edi
movq qword [eax + ecx + 8], xmm0
mov dword [esp + 0x4c], esi
cmp dword [esp + 0x30], 0
je 0x415b15
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x3e4]
mov edi, dword [esp + 0x3ec]
cmp esi, edi
je 0x41469c
lea eax, [esi + 0x10]
mov dword [esp + 0x3e4], eax
mov ecx, dword [esi]
mov eax, ecx
neg eax
jno 0x4155b4
jmp 0x414699
mov eax, dword [esp + 0x604]
mov dword [esp + 8], eax
sub esp, 4
movaps xmm0, xmmword [esp + 0x24]
lea ecx, [esp + 0x1c4]
mov edx, ebx
movss dword [esp], xmm0
call fcn.0048e3d0
add esp, 4
mov edx, dword [esp + 0x1c0]
mov eax, dword [esp + 0x1c4]
mov ecx, edx
neg ecx
mov ecx, dword [esp + 0x1c8]
jo 0x415bd2
mov dword [esp + 0x820], edx
mov dword [esp + 0x828], ecx
mov dword [esp + 0x824], eax
lea ecx, [esp + 0x600]
lea edx, [esp + 0x820]
push 1
call fcn.0048f480
add esp, 4
mov ebx, dword [esp + 0x600]
mov eax, ebx
neg eax
jno 0x415c11
mov eax, dword [esp + 0x604]
mov ecx, dword [esp + 0x608]
movdqa xmm0, xmmword [esp + 0x20]
mov dword [esp + 0x824], ecx
mov dword [esp + 0x820], eax
mov ecx, esi
test edi, edi
mov edi, dword [esp + 0xc]
je 0x415995
push dword [esp + 8]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movdqa xmm0, xmmword [esp + 0x20]
jmp 0x415993
mov ecx, dword [esp + 0x604]
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c0], 0
push 0
push 0
lea eax, [esp + 0x1c8]
push eax
push 0x49d590
mov dword [esp + 0x4c], ecx
push ecx
push dword [esp + 0x1c]
call dword [sym.imp.kernel32.dll_CopyFileExW]
test eax, eax
je 0x415cbe
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x1c4]
test ebx, ebx
mov dword [esp + 0x828], ecx
mov dword [esp + 0x824], eax
je 0x415c84
push dword [esp + 0x3c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
test edi, edi
je 0x415c9a
push dword [esp + 8]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx edx, byte [esp + 0x820]
mov edi, dword [esp + 0xc]
movdqa xmm0, xmmword [esp + 0x20]
xor ebx, ebx
mov ecx, esi
cmp cl, 3
jae 0x4159af
jmp 0x415a07
call dword [sym.imp.kernel32.dll_GetLastError]
movdqa xmm0, xmmword [esp + 0x20]
test ebx, ebx
mov ecx, esi
mov byte [esp + 0x820], 0
mov dword [esp + 0x824], eax
je 0x415be8
push dword [esp + 0x3c]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
movdqa xmm0, xmmword [esp + 0x20]
jmp 0x415be6
mov edx, dword [esp + 0x824]
cmp dword [esp + 0x130], 0
mov ecx, dword [esp + 0x821]
mov dword [esi + 4], edx
mov dword [esi + 1], ecx
mov byte [esi], al
je 0x415d35
push dword [esp + 0xc0]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x30], 0
mov esi, dword [esp + 0x50]
je 0x415d52
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x3e0]
call fcn.00406d70
cmp dword [esp + 0x190], 0
jne 0x413ab0
jmp 0x413abf
mov ecx, 0x90303c
mov edx, 0x90303c
call fcn.004ef6b0
jmp 0x41361d
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
test esi, esi
je 0x415da3
push dword [esp + 4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 0x14]
xor eax, eax
mov edx, edi
mov ecx, edx
mov ebx, edx
mov edx, dword [esp + 8]
mov byte [esi], al
mov eax, ebx
shl ecx, 0x18
shr ebx, 0x18
shr eax, 8
mov byte [esi + 7], bl
mov word [esi + 5], ax
and edx, 0xffffff
or edx, ecx
mov dword [esi + 1], edx
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00406160
mov ecx, 1
mov edx, esi
call fcn.00405e70
mov eax, dword [esp + 0x88]
lock dec dword [eax]
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
jne 0x415e10
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
call fcn.00469100
lea ecx, [esp + 0x600]
call fcn.00406dd0
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x190], 0
jne 0x413ab0
jmp 0x413abf
call dword [sym.imp.kernel32.dll_GetLastError]
cmp dword [esp + 0x1c0], 0
je 0x415e58
push dword [esp + 0x1c4]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
ud2
call dword [sym.imp.kernel32.dll_GetLastError]
ud2
mov ecx, 7
int 0x29
ud2