Function at 0x49c160
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x30c0
call fcn.0058cb30
mov eax, dword [ebp + 0xc]
call 0x49c17b
pop ecx
mov esi, dword [eax]
mov eax, dword [esi + 0x54]
mov dword [esp + 0x20], esi
test byte [eax + 0x1e], 1
jne 0x49c4e6
cmp byte [esi + 0x38], 3
mov dword [esp + 0x10], ecx
lea eax, [esi + 0x30]
mov ecx, 0x5adff8
cmovne ecx, eax
xor eax, eax
cmp byte [ecx + 8], 2
cmovne eax, ecx
jne 0x49c2cd
cmp byte [esi + 0x40], 0
je 0x49c4e6
movzx eax, byte [esi + 0x3e]
movaps xmm0, xmmword [0x5ac550]
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x1a20], 4
mov dword [esp + 0x1a24], 0
mov dword [esp + 0x1a28], 0
movups xmmword [esp + 0xcd0], xmm0
mov byte [esp + 0x4c], al
mov byte [esp + 0xce0], 0
je 0x49c2f0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x1a20]
lea edi, [esp + 0x638]
mov dword [esp + 0x18], edx
lea ecx, [eax + ecx*4]
mov ebx, eax
mov dword [esp + 0x30], ecx
jmp 0x49c23a
cmp ebx, dword [esp + 0x30]
je 0x49c2f0
push dword [ebx]
lea eax, [esp + 0xcd4]
push eax
push edi
call fcn.004e3d40
add esp, 0xc
lea ecx, [esp + 0x1a20]
mov edx, edi
call fcn.0047ba00
mov esi, dword [esp + 0x638]
add ebx, 4
test esi, esi
je 0x49c230
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x640]
test ebx, ebx
je 0x49c2a0
lea edi, [esi + 4]
jmp 0x49c286
add edi, 0x10
dec ebx
je 0x49c2a0
cmp dword [edi], 0
je 0x49c280
push dword [edi - 4]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49c280
cmp dword [esp + 0x63c], 0
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x638]
je 0x49c230
push esi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49c230
mov ecx, dword [eax]
lock inc dword [ecx]
jle 0x4a0cc2
mov edx, dword [eax + 4]
movzx eax, byte [eax + 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov byte [esp + 0x68], al
jmp 0x49c4eb
cmp byte [esp + 0x4c], 0
je 0x49c369
lea eax, [esp + 0x1a20]
push 1
push eax
call fcn.004e66f0
add esp, 8
movsd xmm0, qword [esp + 0x1a20]
mov eax, dword [esp + 0x1a28]
movsd qword [esp + 0x27e8], xmm0
mov dword [esp + 0x27f0], eax
mov edi, dword [esp + 0x27e8]
test edi, edi
je 0x49c471
mov ecx, dword [esp + 0x20]
mov edx, eax
mov esi, edi
shl edx, 4
movzx ecx, byte [ecx + 0x3e]
nop word [eax + eax]
test edx, edx
je 0x49c454
add edx, 0xfffffff0
cmp byte [esi + 0xc], 0
lea esi, [esi + 0x10]
jne 0x49c350
jmp 0x49c471
mov ecx, dword [esp + 0x1a20]
test ecx, ecx
je 0x49c309
mov esi, dword [esp + 0x1a28]
mov edx, esi
mov dword [esp + 0x18], ecx
call fcn.00483f60
mov edx, dword [esp + 0x18]
mov ecx, esi
cmp esi, 2
jb 0x49c309
lea ebx, [edx + 0x1c]
dec ecx
mov esi, 1
jmp 0x49c3c8
mov esi, dword [esp + 0xc]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov eax, esi
inc esi
shl eax, 4
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
add ebx, 0x10
dec ecx
je 0x49c448
mov eax, dword [ebx - 4]
mov dword [esp + 0xc], esi
dec esi
lea edi, [ebx - 0xc]
shl esi, 4
cmp eax, dword [edx + esi + 8]
jne 0x49c3a0
mov dword [esp + 0x30], ecx
lea ecx, [edx + esi]
mov edx, dword [edi]
push eax
push dword [ecx]
mov dword [esp + 0x34], edx
push edx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add esp, 0xc
test eax, eax
jne 0x49c3a0
cmp byte [ebx], 0
mov edi, dword [esp + 0x2c]
setne al
cmp byte [edx + esi + 0xc], 0
setne cl
cmp al, cl
je 0x49c421
lea eax, [edx + esi + 0xc]
mov byte [ebx], 0
mov byte [eax], 0
cmp dword [ebx - 8], 0
je 0x49c43a
push edi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
add ebx, 0x10
dec ecx
jne 0x49c3c8
mov dword [esp + 0x1a28], esi
jmp 0x49c309
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x50], 1
jne 0x49c471
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x48]
mov edx, dword [edx]
cmp dword [edx + 0x18], 0
je 0x49daab
mov esi, dword [esp + 0x20]
cmp dword [ebp + 0x14], 1
jne 0x49c49b
cmp dword [esi + 0x50], 0
je 0x49ff03
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
cmp word [eax + 0x1c], 0
jne 0x49c49b
cmp dword [eax + 0x18], 0
je 0x49d88e
mov edi, dword [esp + 0x27e8]
test edi, edi
je 0x49c4e6
xor edx, edx
cmp byte [esp + 0x4c], 0
mov ebx, dword [esp + 0x27f0]
setne dl
lea esi, [esp + 0x638]
mov ecx, esi
push ebx
push edi
call fcn.004c52c0
add esp, 8
cmp byte [esp + 0x638], 7
mov dword [esp + 0xc], edi
jne 0x49cc7a
mov byte [esp + 0x68], 2
jmp 0x49cc9e
mov byte [esp + 0x68], 2
lock inc dword [esi]
jle 0x4a0cc2
mov bh, byte [esp + 0x68]
cmp bh, 2
jne 0x49c504
mov byte [esp + 0x78], 2
jmp 0x49c521
mov edi, dword [esp + 0x60]
lock inc dword [edi]
jle 0x4a0cc2
mov eax, dword [esp + 0x64]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], eax
mov byte [esp + 0x78], bh
mov dword [esp + 0x80], esi
mov ecx, 0xa
mov dword [esp + 0xc], 0xa00000
cmp byte [esi + 0x3c], 0
movzx eax, byte [esi + 0x3d]
cmovne ecx, eax
cmp byte [esi + 0x3f], 0
mov eax, esi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x30], ecx
setne byte [esp + 0x10]
cmp esi, 2
je 0x49c55e
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
mov bl, byte [eax + 0x46]
lea eax, [esp + 0x638]
push eax
call fcn.004b3080
add esp, 4
xor ecx, ecx
cmp bl, 3
movzx eax, bl
cmove eax, ecx
xor ecx, ecx
test esi, esi
setne cl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x638], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x63c], ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x640], 1
mov byte [esp + 0x641], cl
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x642], cl
mov byte [esp + 0x644], 0
mov byte [esp + 0x645], al
lea edx, [esp + 0x638]
lea ecx, [esp + 0x1a20]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.004b3330
add esp, 8
cmp dword [esp + 0x1a20], 0x27
jne 0x49c766
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x6c], eax
lea esi, [esp + 0x638]
mov ecx, esi
call fcn.00482380
cmp bh, 2
je 0x49c61c
lock inc dword [edi]
jle 0x4a0cc2
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x3e], 0
mov dword [esp + 0x220], edi
mov dword [esp + 0x224], eax
mov byte [esp + 0x228], bh
mov byte [esp + 0x2064], 2
mov byte [esp + 0x2060], 3
setne bl
setne byte [esp + 0x22c]
lea edi, [esp + 0x1a20]
push edi
call fcn.004b3080
add esp, 4
movsd xmm0, qword [esp + 0x2058]
movsd xmm1, qword [esp + 0x2060]
movsd qword [esp + 0x730], xmm1
movsd qword [esp + 0x728], xmm0
push 0xf0
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x730]
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x224]
cmp al, 3
je 0x49c6cd
cmp al, 2
je 0x49c6cd
mov ecx, dword [esp + 0x728]
lock dec dword [ecx]
jne 0x49c6cd
mov edx, dword [esp + 0x72c]
call fcn.00483ea0
movzx eax, word [esp + 0x1a20]
mov dword [esp + 0x728], esi
mov dword [esp + 0x72c], edi
mov byte [esp + 0x730], bh
mov word [esp + 0x731], ax
movzx eax, byte [esp + 0x1a22]
mov byte [esp + 0x733], al
movzx eax, word [esp + 0x2058]
mov byte [esp + 0x734], bl
mov word [esp + 0x735], ax
movzx eax, byte [esp + 0x205a]
mov byte [esp + 0x737], al
mov eax, dword [esp + 0x6c]
lock inc dword [eax]
jle 0x4a0cc2
cmp bh, 2
jne 0x49c836
mov dword [esp + 0x1a20], eax
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a28], edi
mov byte [esp + 0x1a2c], 2
mov byte [esp + 0x1a30], bl
jmp 0x49c875
movsd xmm1, qword [esp + 0x1a50]
movsd xmm2, qword [esp + 0x1a48]
movsd xmm0, qword [esp + 0x1a58]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x1a40]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x1a38]
movsd qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x1a30]
movsd qword [esp + 0x158], xmm2
movsd xmm2, qword [esp + 0x1a20]
movsd qword [esp + 0x150], xmm1
movsd xmm1, qword [esp + 0x1a28]
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x148], xmm1
lea ecx, [esp + 0x638]
call fcn.00482380
cmp byte [esp + 0x78], 2
je 0x49c81b
mov ecx, dword [esp + 0x70]
lock dec dword [ecx]
jne 0x49c81b
mov edx, dword [esp + 0x74]
call fcn.00483ea0
mov ecx, dword [esp + 0x80]
lock dec dword [ecx]
jne 0x49c82c
call fcn.00483f30
mov ebx, 1
jmp 0x49dda6
lock inc dword [esi]
jle 0x4a0cc2
mov dword [esp + 0x1a20], eax
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a28], edi
mov byte [esp + 0x1a2c], bh
mov byte [esp + 0x1a30], bl
lock dec dword [esi]
jne 0x49c875
mov edx, dword [esp + 0x72c]
mov ecx, esi
call fcn.00483ea0
lea edi, [esp + 0x638]
mov ecx, edi
call fcn.00482380
movsd xmm0, qword [esp + 0x1a20]
movsd xmm1, qword [esp + 0x1a28]
mov eax, dword [esp + 0x1a30]
cmp bh, 2
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0xa0], xmm1
mov dword [esp + 0xa8], eax
jne 0x49c8d2
mov al, 2
mov esi, dword [esp + 0x80]
mov byte [esp + 0x24], bh
cmp byte [esi + 0x44], 0
jne 0x49c8fd
jmp 0x49c9f2
mov ecx, dword [esp + 0x70]
lock inc dword [ecx]
jle 0x4a0cc2
mov edx, dword [esp + 0x74]
movzx eax, byte [esp + 0x78]
mov esi, dword [esp + 0x80]
mov byte [esp + 0x24], bh
cmp byte [esi + 0x44], 0
je 0x49c9f2
cmp byte [esi + 0x3e], 0
je 0x49c9f2
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x220], 0
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], edx
mov byte [esp + 0x2068], 3
mov byte [esp + 0x230], al
mov dword [esp + 0x2058], 0
lea esi, [esp + 0x1a20]
push esi
call fcn.004b3080
add esp, 4
mov eax, dword [esp + 0x2068]
movsd xmm0, qword [esp + 0x2058]
movsd xmm1, qword [esp + 0x2060]
mov dword [esp + 0x648], eax
lea eax, [esp + 0x64c]
movsd qword [esp + 0x640], xmm1
movsd qword [esp + 0x638], xmm0
push 0xf0
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x230]
movsd xmm0, qword [esp + 0x220]
movsd xmm1, qword [esp + 0x228]
mov dword [esp + 0x1a30], eax
movsd qword [esp + 0x1a28], xmm1
movsd qword [esp + 0x1a20], xmm0
push esi
lea eax, [esp + 0x63c]
push eax
call fcn.004ae860
add esp, 8
lock inc dword [edi]
jle 0x4a0cc2
movzx eax, byte [esp + 0x648]
cmp al, 3
jne 0x49ca12
mov cl, 3
jmp 0x49ca39
mov esi, 2
cmp al, 2
je 0x49cadd
lock dec dword [ecx]
jne 0x49cadd
call fcn.00483ea0
jmp 0x49cadd
cmp al, 2
jne 0x49ca1a
mov cl, 2
jmp 0x49ca39
mov edx, dword [esp + 0x640]
lock inc dword [edx]
jle 0x4a0cc2
mov ebx, dword [esp + 0x644]
movzx ecx, byte [esp + 0x648]
mov esi, dword [esp + 0x638]
cmp cl, 3
mov dword [esp + 0x1a20], esi
mov esi, dword [esp + 0x63c]
mov dword [esp + 0x1a24], esi
mov dword [esp + 0x1a2c], ebx
mov dword [esp + 0x1a28], edx
mov byte [esp + 0x1a30], al
mov dword [esp + 0x1a34], edi
je 0x49ca93
cmp cl, 2
je 0x49ca93
mov ecx, dword [esp + 0x640]
lock dec dword [ecx]
jne 0x49ca93
mov edx, dword [esp + 0x644]
call fcn.00483ea0
lea ecx, [esp + 0x64c]
call fcn.00482380
mov bh, byte [esp + 0x24]
lea edi, [esp + 0x638]
lea eax, [esp + 0x1a24]
mov esi, dword [esp + 0x1a20]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
movsd qword [esp + 0x638], xmm0
movsd qword [esp + 0x640], xmm1
mov dword [esp + 0x648], eax
mov eax, dword [esp + 0x648]
movsd xmm0, qword [esp + 0x638]
movsd xmm1, qword [esp + 0x640]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb0], esi
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x2c], 3
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xbc], xmm1
mov dword [esp + 0xc4], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ecx
cmp byte [ecx + 0x43], 0
je 0x49cd46
mov eax, dword [ecx + 0x54]
cmp dword [eax + 0x18], 0
jne 0x49cb4e
test byte [eax + 0x1d], 3
je 0x49cd46
mov dword [esp + 0x1c], esi
mov bh, byte [ecx + 0x3e]
mov bl, byte [ecx + 0x45]
mov esi, dword [ecx + 0x18]
mov edi, dword [ecx + 0x1c]
lea eax, [esp + 0x1a2c]
push eax
call fcn.004b3080
add esp, 4
cmp esi, 2
mov eax, 1
mov ecx, 0x100000
cmovne eax, esi
cmove edi, ecx
test bh, bh
setne byte [esp + 0x1a28]
mov dword [esp + 0x1a20], eax
mov eax, dword [esp + 0x4c]
test bl, bl
mov dword [esp + 0x1a24], edi
mov byte [esp + 0x1a29], 1
setne byte [esp + 0x1a2a]
lock inc dword [eax]
jle 0x4a0cc2
push eax
lea eax, [esp + 0x1a24]
push eax
lea edi, [esp + 0x640]
push edi
call fcn.00488570
add esp, 0xc
mov bh, byte [esp + 0x24]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x1a2c]
call fcn.00482380
cmp dword [esp + 0x638], 0
je 0x49cc4d
mov ecx, dword [esp + 0x640]
cmp ecx, 0x26
ja 0x49cd46
mov eax, dword [esp + 0x648]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x49cd02
mov esi, dword [esp + 0x1c]
test edx, edx
lea edi, [esp + 0x638]
jne 0x49cd46
cmp ecx, 0x1f
jne 0x49cd25
test eax, eax
je 0x49cd46
mov eax, dword [esp + 0x644]
jmp 0x49cd36
mov eax, dword [esp + 0x63c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x640]
push 0x138
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x49cd46
lea edi, [esp + 0xcd0]
push 0x1a8
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x60]
push edi
push eax
call fcn.004c4e60
add esp, 8
test ebx, ebx
je 0x49ccd9
mov eax, dword [esp + 0xc]
mov edi, dword [0x6074a0]
lea esi, [eax + 4]
jmp 0x49ccc6
add esi, 0x10
dec ebx
je 0x49ccd9
cmp dword [esi], 0
je 0x49ccc0
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
jmp 0x49ccc0
cmp dword [esp + 0x27ec], 0
mov esi, dword [esp + 0x20]
je 0x49c4eb
mov eax, dword [0x6074a0]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49c4eb
mov esi, dword [esp + 0x1c]
cmp eax, 4
lea edi, [esp + 0x638]
jb 0x49cd46
cmp dword [esp + 0x654], 0
je 0x49cd46
mov eax, dword [esp + 0x650]
jmp 0x49cd36
cmp dword [esp + 0x660], 0
je 0x49cd46
mov eax, dword [esp + 0x65c]
mov ecx, dword [0x6074a0]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1658], eax
lea eax, [esp + 0x165c]
push 0x138
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x41], 0
je 0x49ce3c
push edi
call fcn.004b3080
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x63c], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0x640], 1
mov byte [esp + 0x641], al
mov ah, byte [esp + 0x10]
mov byte [esp + 0x642], ah
mov word [esp + 0x643], 1
mov byte [esp + 0x645], 2
lea edx, [esp + 0x638]
lea ecx, [esp + 0x1a20]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.004b3330
add esp, 8
cmp dword [esp + 0x1a20], 0x27
jne 0x49ce56
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x638]
call fcn.00482380
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x41], 0
je 0x49cfd6
cmp bh, 2
jne 0x49cff2
mov edx, dword [esp + 0x20]
mov byte [esp + 0x8c], 2
mov ah, 2
mov al, byte [edx + 0x3e]
jmp 0x49d036
mov dword [esp + 0xc], 0
mov ebx, 2
mov dword [esp + 0x2c], 0
jmp 0x49dcc2
movsd xmm1, qword [esp + 0x1a50]
movsd xmm2, qword [esp + 0x1a48]
movsd xmm0, qword [esp + 0x1a58]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [esp + 0x1a40]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [esp + 0x1a38]
movsd qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [esp + 0x1a30]
movsd qword [esp + 0x158], xmm2
movsd xmm2, qword [esp + 0x1a20]
movsd qword [esp + 0x150], xmm1
movsd xmm1, qword [esp + 0x1a28]
movsd qword [esp + 0x140], xmm2
movsd qword [esp + 0x148], xmm1
lea ecx, [esp + 0x638]
call fcn.00482380
cmp dword [esp + 0x2c], 3
je 0x49cf48
mov ecx, dword [esp + 0x1664]
lock dec dword [ecx]
jne 0x49cf0a
call fcn.00483de0
cmp dword [esp + 0x166c], 0
je 0x49cf29
mov eax, dword [0x6074a0]
push dword [esp + 0x1668]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1678], 0
je 0x49cf48
mov eax, dword [0x6074a0]
push dword [esp + 0x1674]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp esi, 2
je 0x49cf86
movzx eax, byte [esp + 0xc0]
cmp al, 3
je 0x49cf75
cmp al, 2
je 0x49cf75
mov ecx, dword [esp + 0xb8]
lock dec dword [ecx]
jne 0x49cf75
mov edx, dword [esp + 0xbc]
call fcn.00483ea0
mov ecx, dword [esp + 0xc4]
lock dec dword [ecx]
jne 0x49cf86
call fcn.00483de0
movzx eax, byte [esp + 0xa4]
cmp al, 3
je 0x49cfae
cmp al, 2
je 0x49cfae
mov ecx, dword [esp + 0x9c]
lock dec dword [ecx]
jne 0x49cfae
mov edx, dword [esp + 0xa0]
call fcn.00483ea0
mov ecx, dword [esp + 0x98]
lock dec dword [ecx]
jne 0x49cfbf
call fcn.00483de0
mov ecx, dword [esp + 0x6c]
lock dec dword [ecx]
jne 0x49c802
call fcn.00483de0
jmp 0x49c802
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], 2
lea ebx, [esp + 0x638]
jmp 0x49dc93
mov ecx, dword [esp + 0x70]
lock inc dword [ecx]
jle 0x4a0cc2
mov esi, dword [esp + 0x74]
mov ah, byte [esp + 0x78]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov byte [esp + 0x8c], ah
cmp byte [edx + 0x41], 0
je 0x49dc40
mov al, byte [edx + 0x3e]
lock inc dword [ecx]
jle 0x4a0cc2
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov edi, 0x200000
cmp dword [edx + 8], 0
je 0x49d05a
mov edi, dword [edx + 0xc]
cmp byte [edx + 0x45], 0
movaps xmm0, xmmword [0x5ac560]
mov byte [esp + 0x25a8], 3
mov dword [esp + 0x25ac], 0x2020202
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov byte [esp + 0x30], ah
mov dword [esp + 0x18], edi
mov dword [esp + 0x2564], 0
mov dword [esp + 0x2560], 0
mov word [esp + 0x25b0], 0x202
mov dword [esp + 0x2588], 0
mov dword [esp + 0x2590], 2
mov dword [esp + 0x2598], 2
setne byte [esp + 0x1c]
setne byte [esp + 0x116]
test al, al
setne byte [esp + 0x114]
setne byte [esp + 0x58]
cmp ah, 2
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], esi
mov byte [esp + 0x110], ah
mov dword [esp + 0xf0], 1
mov dword [esp + 0xf4], edi
movups xmmword [esp + 0xf8], xmm0
mov byte [esp + 0x115], 1
mov byte [esp + 0x117], 1
setne byte [esp + 0x118]
setne byte [esp + 0x28]
mov byte [esp + 0x119], 0
lea ebx, [esp + 0x220]
push ebx
call fcn.004b3080
add esp, 4
lea edi, [esp + 0x638]
lea esi, [esp + 0x2560]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x690]
push 0xf0
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x24], 2
mov eax, dword [esp + 0xc]
je 0x49d18b
lock inc dword [eax]
jle 0x4a0cc2
movzx ecx, byte [esp + 0x58]
movaps xmm0, xmmword [0x5ac560]
mov byte [esp + 0x26c], cl
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x264], eax
movzx eax, byte [esp + 0x30]
mov byte [esp + 0x268], al
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0x26d], 1
mov byte [esp + 0x26e], al
movzx eax, byte [esp + 0x28]
mov byte [esp + 0x26f], 1
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 0
mov byte [esp + 0x270], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x248], 1
mov dword [esp + 0x24c], eax
mov byte [esp + 0x271], 0
movups xmmword [esp + 0x250], xmm0
lea eax, [esp + 0x220]
push eax
lea ebx, [esp + 0x63c]
push ebx
call fcn.004913a0
add esp, 8
mov eax, dword [esp + 0x4c]
lock inc dword [eax]
jle 0x4a0cc2
lea esi, [esp + 0x1798]
push eax
push ebx
push esi
call fcn.004901c0
add esp, 0xc
movzx eax, byte [esp + 0x680]
cmp al, 3
je 0x49d27f
cmp al, 2
je 0x49d27f
mov ecx, dword [esp + 0x678]
lock dec dword [ecx]
jne 0x49d27f
mov edx, dword [esp + 0x67c]
call fcn.00483ea0
mov bl, 1
mov ecx, edi
call fcn.00482380
mov eax, dword [esp + 0x1798]
xor eax, 2
or eax, dword [esp + 0x179c]
jne 0x49d2ee
mov ecx, dword [esp + 0x17a0]
cmp ecx, 0x26
ja 0x49dbf5
mov eax, dword [esp + 0x17a8]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x49db3a
test edx, edx
jne 0x49dbf5
cmp ecx, 0x1f
jne 0x49db5a
test eax, eax
je 0x49dbf5
mov eax, dword [esp + 0x17a4]
jmp 0x49db6f
lea eax, [esp + 0x27e8]
push 0x288
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esp + 0x4f0], 3
mov dword [esp + 0x4f4], 0x2020202
mov dword [esp + 0x4ac], 0
mov dword [esp + 0x4a8], 0
mov word [esp + 0x4f8], 0x202
mov dword [esp + 0x4d0], 0
mov dword [esp + 0x4d8], 2
mov dword [esp + 0x4e0], 2
lea ebx, [esp + 0x220]
push ebx
call fcn.004b3080
add esp, 4
lea edi, [esp + 0x638]
lea esi, [esp + 0x4a8]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
push 0xf0
push ebx
lea eax, [esp + 0x698]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx ebx, byte [esp + 0x110]
cmp bl, 3
je 0x49d3c4
cmp bl, 2
je 0x49d3c4
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
lock inc dword [eax]
jle 0x4a0cc2
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
movzx ecx, byte [esp + 0x116]
movzx edx, byte [esp + 0x117]
xor edi, edi
mov bh, byte [esp + 0x115]
or eax, dword [esp + 0xcc]
mov byte [esp + 0xc], cl
mov byte [esp + 0x30], dl
je 0x49d43a
lea eax, [esp + 0xd0]
mov esi, 1
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0x4b8], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x4c0], xmm0
movsd qword [esp + 0x4a8], xmm2
movsd qword [esp + 0x4b0], xmm1
jmp 0x49d43c
xor esi, esi
movsd xmm0, qword [esp + 0x4a8]
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
xor eax, eax
movsd xmm1, qword [esp + 0x4b0]
test edx, edx
movsd qword [esp + 0x228], xmm0
movsd xmm0, qword [esp + 0x4b8]
movsd qword [esp + 0x230], xmm1
setne al
cmp edx, 2
cmove eax, edx
xor edx, edx
test ecx, ecx
setne dl
cmp ecx, 2
cmove edx, ecx
movsd qword [esp + 0x238], xmm0
movsd xmm0, qword [esp + 0x4c0]
mov ecx, dword [esp + 0xf0]
cmp bl, 3
movsd qword [esp + 0x240], xmm0
mov dword [esp + 0x220], esi
mov dword [esp + 0x224], edi
mov dword [esp + 0x248], ecx
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x24c], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], edx
mov esi, dword [esp + 0x18]
movzx edx, byte [esp + 0xc]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], esi
mov byte [esp + 0x268], bl
mov byte [esp + 0x26c], 0
mov byte [esp + 0x26d], bh
mov byte [esp + 0x26e], dl
mov bh, byte [esp + 0x30]
movzx edx, word [esp + 0x118]
lea esi, [esp + 0x269]
mov byte [esp + 0x26f], bh
mov word [esp + 0x270], dx
je 0x49d575
cmp bl, 2
je 0x49d575
lock dec dword [ecx]
jne 0x49d575
mov edx, dword [esp + 0x264]
call fcn.00483ea0
movzx ecx, byte [esp + 0x4aa]
mov byte [esp + 0x268], 2
xor edx, edx
lea ebx, [esp + 0x220]
lea eax, [esp + 0x271]
mov byte [esi + 2], cl
movzx ecx, word [esp + 0x4a8]
mov word [esi], cx
mov esi, ebx
mov ecx, dword [esp + 0x270]
cmp cl, 2
cmovne edx, ecx
mov ecx, 0x14
mov byte [esp + 0x270], dl
lea edx, [esp + 0x4a8]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x4f8], 0
mov ecx, dword [eax]
mov eax, dword [eax + 3]
mov dword [esp + 0x183], eax
mov dword [esp + 0x180], ecx
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x183]
mov dword [esp + 0x4f9], eax
mov dword [esp + 0x4fc], ecx
push edx
lea eax, [esp + 0x63c]
push eax
call fcn.004913a0
add esp, 8
lea esi, [esp + 0x2560]
lea edi, [esp + 0x690]
mov eax, dword [esp + 0xac]
lock inc dword [eax]
jle 0x4a0cc2
push eax
lea eax, [esp + 0x63c]
push eax
push esi
call fcn.004901c0
add esp, 0xc
movzx eax, byte [esp + 0x680]
cmp al, 3
je 0x49d669
cmp al, 2
je 0x49d669
mov ecx, dword [esp + 0x678]
lock dec dword [ecx]
jne 0x49d669
mov edx, dword [esp + 0x67c]
call fcn.00483ea0
mov ecx, edi
call fcn.00482380
mov eax, dword [esp + 0x2560]
xor eax, 2
or eax, dword [esp + 0x2564]
jne 0x49d6d6
mov ecx, dword [esp + 0x2568]
cmp ecx, 0x26
ja 0x49dbba
mov eax, dword [esp + 0x2570]
lea esi, [ecx - 0x20]
xor edx, edx
lea edi, [ecx - 0x1f]
cmp esi, 7
cmovb edx, edi
cmp edx, 1
je 0x49db81
test edx, edx
jne 0x49dbba
cmp ecx, 0x1f
jne 0x49db99
test eax, eax
je 0x49dbba
mov eax, dword [esp + 0x256c]
jmp 0x49dbaa
push 0x288
push esi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esp + 0x1c8], 3
mov dword [esp + 0x1cc], 0x2020202
mov dword [esp + 0x184], 0
mov dword [esp + 0x180], 0
mov word [esp + 0x1d0], 0x202
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1b0], 2
mov dword [esp + 0x1b8], 2
lea eax, [esp + 0x4a8]
push eax
call fcn.004b3080
add esp, 4
lea ebx, [esp + 0x638]
lea esi, [esp + 0x180]
mov ecx, 0x16
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push 0xf0
lea esi, [esp + 0x4ac]
push esi
lea eax, [esp + 0x698]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x148
push ebx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x288
lea eax, [esp + 0x27ec]
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x8c0]
push 0x288
lea ecx, [esp + 0x2564]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x4f0]
cmp al, 3
je 0x49d7e7
cmp al, 2
je 0x49d7e7
mov ecx, dword [esp + 0x4e8]
lock dec dword [ecx]
jne 0x49d7e7
mov edx, dword [esp + 0x4ec]
call fcn.00483ea0
lea ecx, [esp + 0x500]
call fcn.00482380
mov eax, dword [esp + 0x638]
mov ebx, dword [esp + 0x640]
lea esi, [esp + 0x644]
lea edi, [esp + 0x5f4]
mov ecx, 0x11
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x688]
rep movsd dword es:[edi], dword [esi]
push 0x4c0
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x110]
cmp al, 3
je 0x49d86a
cmp al, 2
je 0x49d86a
mov ecx, dword [esp + 0x108]
lock dec dword [ecx]
jne 0x49d86a
mov edx, dword [esp + 0x10c]
call fcn.00483ea0
cmp byte [esp + 0x24], 2
mov dword [esp + 0x1c], ebx
je 0x49dc61
mov ecx, dword [esp + 0x84]
lock dec dword [ecx]
je 0x49dc55
jmp 0x49dc61
cmp byte [eax + 0x28], 0
je 0x49c49b
cmp byte [esi + 0x3e], 0
je 0x49c49b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp word [eax], 7
jne 0x49c49b
mov dword [esp + 0x1a20], 4
mov dword [esp + 0x1a24], 0
mov dword [esp + 0x1a28], 0
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x49e8d8
mov edi, dword [eax + 4]
lea eax, [ecx + ecx*8]
xor edx, edx
lea eax, [eax + eax*2]
add ecx, edi
add ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, 4
jmp 0x49d92e
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
lea eax, [edx + edx*2]
inc edx
mov dword [ecx + eax*4], ebx
mov ebx, dword [esp + 0xc]
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1a28], edx
add edi, 0x1c
cmp edi, dword [esp + 0x1c]
je 0x49e8cc
mov dword [esp + 0x638], 1
mov dword [esp + 0x63c], 0
mov dword [esp + 0x220], edi
mov dword [esp + 0x640], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
movzx eax, word [edi]
cmp eax, 1
je 0x49da1a
cmp eax, 6
jne 0x4a13df
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x49da62
mov ebx, dword [edi + 4]
lea eax, [ecx + ecx*8]
xor edi, edi
mov dword [esp + 0x30], 1
lea eax, [eax + eax*2]
add ecx, ebx
add ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x49d9d0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
add eax, edi
push esi
push dword [esp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x10]
add ebx, 0x1c
add edi, esi
mov dword [esp + 0x640], edi
cmp ebx, ecx
je 0x49da6c
mov dword [esp + 0x2058], ebx
cmp word [ebx], 1
jne 0x4a1217
mov ecx, dword [esp + 0x63c]
mov esi, dword [ebx + 8]
mov eax, dword [ebx + 4]
sub ecx, edi
mov dword [esp + 0xc], eax
cmp ecx, esi
jae 0x49d9a0
mov edx, edi
lea ecx, [esp + 0x638]
push esi
call fcn.00485590
add esp, 4
mov eax, dword [esp + 0x638]
mov edi, dword [esp + 0x640]
jmp 0x49d9a4
mov esi, dword [edi + 8]
mov ebx, dword [edi + 4]
test esi, esi
je 0x49da46
xor edx, edx
lea ecx, [esp + 0x638]
push esi
call fcn.00485590
add esp, 4
mov eax, dword [esp + 0x638]
mov edi, dword [esp + 0x640]
jmp 0x49da4d
xor edi, edi
mov eax, 1
mov dword [esp + 0x30], eax
add eax, edi
push esi
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, esi
jmp 0x49da6c
mov dword [esp + 0x30], 1
xor edi, edi
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x63c]
cmp edx, dword [esp + 0x1a24]
mov dword [esp + 0xc], ebx
jne 0x49d8f7
lea ecx, [esp + 0x1a20]
call fcn.00484a00
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1a20]
mov edx, dword [esp + 0x1a28]
jmp 0x49d8ff
test cl, cl
je 0x49c471
cmp word [edx + 0x1c], 0
jne 0x49c471
mov edx, 1
lea ecx, [esp + 0xcd0]
push eax
push edi
call fcn.004c52c0
add esp, 8
movzx esi, byte [esp + 0xcd0]
cmp esi, 7
je 0x49c471
movzx eax, byte [esp + 0xcd3]
movzx ebx, word [esp + 0xcd1]
shl eax, 0x10
or eax, ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0xcd4]
lea ecx, [esp + 0x1a20]
push 0x1a4
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
add eax, dword [esi*4 + 0x4a1eec]
jmp eax
cmp eax, 4
jb 0x49dbf5
cmp dword [esp + 0x17b4], 0
je 0x49dbf5
mov eax, dword [esp + 0x17b0]
jmp 0x49db6f
cmp dword [esp + 0x17c0], 0
je 0x49dbf5
mov eax, dword [esp + 0x17bc]
mov ecx, dword [0x6074a0]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
jmp 0x49dbf5
cmp eax, 4
jb 0x49dbba
cmp dword [esp + 0x257c], 0
je 0x49dbba
mov eax, dword [esp + 0x2578]
jmp 0x49dbaa
cmp dword [esp + 0x2588], 0
je 0x49dbba
mov eax, dword [esp + 0x2584]
mov ecx, dword [0x6074a0]
push eax
push 0
push dword [ecx]
call sub.KERNEL32.dll_HeapFree
movzx eax, byte [esp + 0x2830]
cmp al, 3
je 0x49dbe2
cmp al, 2
je 0x49dbe2
mov ecx, dword [esp + 0x2828]
lock dec dword [ecx]
jne 0x49dbe2
mov edx, dword [esp + 0x282c]
call fcn.00483ea0
mov ecx, dword [esp + 0x2a60]
lock dec dword [ecx]
jne 0x49dbf5
xor ebx, ebx
call fcn.00483de0
movzx eax, byte [esp + 0x110]
cmp al, 3
je 0x49dc1d
cmp al, 2
je 0x49dc1d
mov ecx, dword [esp + 0x108]
lock dec dword [ecx]
jne 0x49dc1d
mov edx, dword [esp + 0x10c]
call fcn.00483ea0
cmp byte [esp + 0x8c], 2
jne 0x49dc39
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], 2
jmp 0x49dc61
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], 0
lock dec dword [ecx]
mov dword [esp + 0x30], 2
jne 0x49dc61
mov edx, dword [esp + 0x88]
call fcn.00483ea0
lea edi, [esp + 0x220]
lea esi, [esp + 0x5f4]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x4c0
lea eax, [esp + 0x1a24]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1610]
lea esi, [esp + 0x220]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2058]
push 0x4c0
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x30]
lea esi, [esp + 0x1610]
lea edi, [esp + 0x13c]
mov ecx, 0x11
mov dword [esp + 0x24], esi
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xcd0]
lea eax, [esp + 0x2058]
push 0x4c0
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x78]
movsd xmm1, qword [esp + 0xa0]
movsd xmm3, qword [esp + 0x98]
movsd xmm2, qword [esp + 0xb0]
mov dword [esp + 0x12ec], eax
movsd qword [esp + 0x12e4], xmm0
movsd qword [esp + 0x12f8], xmm1
mov eax, dword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb8]
movsd qword [esp + 0x12f0], xmm3
mov dword [esp + 0x1300], eax
movsd qword [esp + 0x1198], xmm1
movsd xmm1, qword [esp + 0xc0]
movsd qword [esp + 0x1190], xmm2
lea eax, [esp + 0x11a8]
movsd qword [esp + 0x11a0], xmm1
lea ecx, [esp + 0x1658]
push 0x13c
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, ebx
xor eax, 3
or eax, dword [esp + 0xc]
jne 0x49ddf9
mov ebx, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
lea eax, [esp + 0x251c]
lea esi, [esp + 0x13c]
mov ecx, 0x11
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, 0x11
lea edi, [edx + 4]
mov eax, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx], ebx
cmp byte [esp + 0x68], 2
je 0x49e8c4
mov ecx, dword [esp + 0x60]
lock dec dword [ecx]
jne 0x49e8c4
mov edx, dword [esp + 0x64]
call fcn.00483ea0
mov eax, dword [ebp + 8]
jmp 0x49e8c4
mov dword [esp + 0x30], ebx
lea ebx, [esp + 0x251c]
mov eax, esi
lea esi, [esp + 0x13c]
mov ecx, 0x11
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2a70]
push 0x634
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1dc]
mov ecx, 0x11
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov ebx, dword [eax + 0x54]
test byte [ebx + 0x20], 2
jne 0x49e017
mov eax, dword [esp + 0x30]
mov dword [esp + 0x63c], ecx
lea edi, [esp + 0x644]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
mov dword [esp + 0x638], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x640], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x688]
push 0x634
lea eax, [esp + 0x2a74]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xcbc], eax
mov dword [esp + 0xcc4], ecx
mov dword [esp + 0xcc0], edx
mov byte [esp + 0xcc8], 0
cmp byte [eax + 0x40], 0
je 0x49e135
test byte [ebx + 0x1e], 1
jne 0x49e0e4
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, dword [esp + 0xc]
je 0x49e0e4
movzx eax, byte [esp + 0xca4]
lea ebx, [esp + 0xcd0]
lea esi, [esp + 0x2058]
test al, 1
jne 0x49e0e4
mov eax, dword [esp + 0x20]
cmp dword [ebp + 0x14], 0
movaps xmm0, xmmword [0x5ac550]
movzx eax, byte [eax + 0x3e]
movups xmmword [esp + 0xcd0], xmm0
mov dword [esp + 0x220], 4
mov dword [esp + 0x224], 0
mov byte [esp + 0xce0], 1
mov dword [esp + 0x228], 0
mov byte [esp + 0x51], al
je 0x49e1d6
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
lea ecx, [eax + ecx*4]
mov edi, eax
mov dword [esp + 0x18], ecx
jmp 0x49df85
mov edi, dword [esp + 0x10]
lea esi, [esp + 0x2058]
cmp edi, dword [esp + 0x18]
je 0x49e1d6
push dword [edi]
push ebx
push esi
call fcn.004e3d40
add esp, 0xc
lea ecx, [esp + 0x220]
mov edx, esi
call fcn.0047ba00
add edi, 4
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x2058]
test edi, edi
je 0x49df70
mov esi, dword [esp + 0x2060]
test esi, esi
je 0x49dfee
lea ebx, [edi + 4]
jmp 0x49dfd6
add ebx, 0x10
dec esi
je 0x49dfee
cmp dword [ebx], 0
je 0x49dfd0
push dword [ebx - 4]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49dfd0
cmp dword [esp + 0x205c], 0
lea ebx, [esp + 0xcd0]
je 0x49df70
push edi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49df70
test byte [ebx + 0x1e], 1
jne 0x49de51
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, ecx
je 0x49de51
mov ebx, ecx
lea edi, [esp + 0xce4]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x2a74]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcdc], ebx
mov esi, dword [0x6074a0]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1360], eax
mov eax, dword [0x6074b4]
mov byte [esp + 0x1368], 0
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
je 0x49e188
lea edi, [esp + 0xcd0]
jmp 0x49e19e
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea esi, [esp + 0x1a28]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xccc]
mov ebx, dword [esp + 0xcc8]
mov dword [esp + 0x18], eax
mov al, 1
mov dword [esp + 0x28], eax
mov eax, esi
jmp 0x49e4fe
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea esi, [esp + 0x1a28]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xccc]
mov ebx, dword [esp + 0xcc8]
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], eax
mov eax, esi
jmp 0x49e4fe
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
lea edi, [esp + 0xcd0]
je 0x4a13b2
mov dword [esi], eax
push 0x6a0
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4a13b2
mov esi, eax
push 0x6a0
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x5ae6bc
jmp 0x49e8b3
cmp byte [esp + 0x51], 0
je 0x49e322
lea eax, [esp + 0x220]
push 0
push eax
call fcn.004e66f0
add esp, 8
movsd xmm0, qword [esp + 0x220]
mov ecx, dword [esp + 0x228]
movsd qword [esp + 0x1610], xmm0
mov dword [esp + 0x1618], ecx
mov eax, dword [esp + 0x1610]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x49e449
test ecx, ecx
je 0x49e449
mov ebx, dword [esp + 0x5c]
shl ecx, 4
mov edi, 1
mov esi, dword [ebx + 8]
mov eax, dword [ebx]
add ecx, ebx
mov dword [esp + 0x120], ecx
xor ecx, ecx
mov dword [esp + 0x54], eax
add eax, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x18], eax
jmp 0x49e280
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x58]
xor edi, edi
test esi, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x94]
mov cl, 1
je 0x49e449
test cl, 1
je 0x49e293
cmp ebx, dword [esp + 0x120]
jne 0x49e2ac
jmp 0x49e411
mov eax, dword [esp + 0x120]
sub eax, ebx
shr eax, 4
cmp eax, edi
jbe 0x49e411
shl edi, 4
add ebx, edi
mov eax, esi
sub eax, dword [esp + 0x10]
jb 0x4a139d
mov edx, dword [ebx + 8]
test edx, edx
je 0x49e449
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx]
add ebx, 0x10
xor esi, esi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x28], ebx
sub ecx, eax
mov eax, edx
add edi, edx
mov dword [esp + 0x58], ecx
neg eax
mov ecx, 0xffffffff
nop dword [eax + eax]
mov edx, dword [esp + 0x10]
lea ebx, [edx + ecx]
cmp ebx, 0xffffffff
je 0x49e261
movzx ebx, byte [edi + ecx]
mov edx, dword [esp + 0x18]
cmp bl, byte [edx + ecx]
jne 0x49e319
inc esi
mov ebx, eax
dec ecx
add ebx, esi
jne 0x49e2f0
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x28]
jmp 0x49e269
mov ecx, dword [esp + 0x220]
test ecx, ecx
je 0x49e1f3
mov esi, dword [esp + 0x228]
mov edx, esi
mov dword [esp + 0x28], ecx
call fcn.00483f60
mov edx, dword [esp + 0x28]
mov ecx, esi
cmp esi, 2
jb 0x49e1f3
dec ecx
lea esi, [edx + 0x1c]
mov ebx, 1
jmp 0x49e385
mov ebx, dword [esp + 0x10]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov eax, ebx
inc ebx
shl eax, 4
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
add esi, 0x10
dec ecx
je 0x49e405
mov eax, dword [esi - 4]
mov dword [esp + 0x10], ebx
dec ebx
lea edi, [esi - 0xc]
shl ebx, 4
cmp eax, dword [edx + ebx + 8]
jne 0x49e35d
mov dword [esp + 0x18], ecx
lea ecx, [edx + ebx]
mov edx, dword [edi]
push eax
push dword [ecx]
mov dword [esp + 0x60], edx
push edx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x49e35d
cmp byte [esi], 0
mov edi, dword [esp + 0x58]
setne al
cmp byte [edx + ebx + 0xc], 0
setne cl
cmp al, cl
je 0x49e3de
lea eax, [edx + ebx + 0xc]
mov byte [esi], 0
mov byte [eax], 0
cmp dword [esi - 8], 0
je 0x49e3f7
push edi
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
add esi, 0x10
dec ecx
jne 0x49e385
mov dword [esp + 0x228], ebx
jmp 0x49e1f3
mov eax, esi
sub eax, dword [esp + 0x10]
jb 0x4a1402
cmp dword [esp + 0x10], 0
je 0x49e449
mov edi, dword [esp + 0x54]
add edi, eax
cmp dword [esp + 0x10], 1
jne 0x49e9c2
movzx eax, byte [edi]
mov dword [esp + 0x18], 0
mov byte [esp + 0x28], al
jmp 0x49ffc5
lea edi, [esp + 0x4a8]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xcc8]
mov ecx, dword [esp + 0xccc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x5c], 0
je 0x49e4e7
mov esi, dword [esp + 0x1618]
test esi, esi
je 0x49e4cb
mov eax, dword [esp + 0x5c]
mov ebx, dword [0x6074a0]
lea edi, [eax + 4]
jmp 0x49e4b8
add edi, 0x10
dec esi
je 0x49e4cb
cmp dword [edi], 0
je 0x49e4b2
push dword [edi - 4]
push 0
push dword [ebx]
call sub.KERNEL32.dll_HeapFree
jmp 0x49e4b2
cmp dword [esp + 0x1614], 0
je 0x49e4e7
mov eax, dword [0x6074a0]
push dword [esp + 0x5c]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
movzx eax, byte [eax + 0x40]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1a20]
lea edi, [esp + 0x1dc]
lea esi, [esp + 0x4a8]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x2a78]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, ebx
lea edi, [esp + 0xcdc]
mov ecx, 0x11
lea esi, [esp + 0x1dc]
shr eax, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xcd8], eax
lea eax, [esp + 0xd20]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x2a74]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1354], ecx
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1358], eax
mov byte [esp + 0x1360], bl
shr ebx, 0x18
mov eax, dword [esp + 0x10]
cmp byte [esp + 0x28], 0
mov byte [esp + 0x1363], bl
mov word [esp + 0x1361], ax
mov dword [esp + 0x1364], edx
je 0x49e73f
cmp byte [ecx + 0x3e], 0
je 0x49e73f
mov eax, dword [ecx + 0x54]
test byte [eax + 0x1e], 1
jne 0x49e73f
mov eax, dword [esp + 0x30]
xor eax, 2
or eax, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jne 0x49e658
test al, al
jne 0x49e658
lea edi, [esp + 0x2560]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], 0
jmp 0x49e771
movzx eax, byte [esp + 0x133c]
test al, 1
jne 0x49e73f
cmp dword [ebp + 0x14], 1
jne 0x49e699
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x4b1]
mov dword [esp + 0x30], eax
mov ecx, dword [ecx]
movzx eax, word [ecx]
cmp eax, 5
jne 0x49e693
add ecx, 4
mov ecx, dword [ecx]
movzx eax, word [ecx]
cmp eax, 5
je 0x49e686
jae 0x49e8e9
mov eax, dword [esp + 0xcd0]
lea edi, [esp + 0x2560]
mov ecx, 0x11
lea esi, [esp + 0xcdc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcd4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xcd8]
mov dword [esp + 0x1c], eax
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0xd24]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1354]
movzx ecx, word [esp + 0x1361]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1358]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x135c]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1363]
shl eax, 0x10
or ecx, eax
movzx eax, byte [esp + 0x1360]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1364]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
jmp 0x49e771
lea edi, [esp + 0x2560]
lea esi, [esp + 0x1dc]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x2a74]
push eax
lea ebx, [esp + 0x640]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0x1dc]
lea esi, [esp + 0x2560]
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
push 0x634
push ebx
lea ebx, [esp + 0x2a78]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea edi, [esp + 0xce4]
mov ecx, 0x11
lea esi, [esp + 0x1dc]
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
push ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov esi, dword [0x6074a0]
mov dword [esp + 0xcdc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x135c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1360], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1368], al
mov eax, ecx
mov word [esp + 0x1369], cx
shr eax, 0x10
mov byte [esp + 0x136b], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x136c], eax
mov eax, dword [0x6074b4]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
mov eax, dword [esi]
test eax, eax
je 0x49e86a
lea edi, [esp + 0xcd0]
jmp 0x49e880
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
lea edi, [esp + 0xcd0]
je 0x4a1374
mov dword [esi], eax
push 0x6a0
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4a1374
mov esi, eax
push 0x6a0
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x5ae7b8
mov dword [eax], 2
cmp byte [esp + 0x68], 2
jne 0x49dddb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edx, 0xbb8
jae 0x49ead6
lea ecx, [esp + 0x1a20]
call fcn.00482230
jmp 0x49c49b
cmp eax, 6
jne 0x49e699
mov edx, dword [ecx + 0xc]
test edx, edx
mov dword [esp + 0xc], edx
je 0x49ee2b
lea eax, [edx + edx*8]
xor ebx, ebx
lea edi, [eax + eax*2]
add edi, edx
cmp edi, 0x8000000c
setb al
test edx, edx
js 0x4a141d
cmp edi, 0x8000000c
jae 0x4a141d
mov bl, al
mov eax, dword [0x6074b4]
mov esi, dword [ecx + 4]
shl ebx, 2
movzx eax, byte [eax]
push ebx
mov dword [esp + 0x14], edi
push edi
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a1429
mov ecx, dword [esp + 0xc]
mov edi, eax
xor ebx, ebx
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], 0
lea ecx, [esp + 0x1a20]
mov edx, esi
call fcn.0049ae30
mov eax, dword [esp + 0x1a38]
inc ebx
add esi, 0x1c
mov dword [edi + 0x18], eax
movsd xmm0, qword [esp + 0x1a30]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x1a20]
movsd xmm1, qword [esp + 0x1a28]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x1c
cmp dword [esp + 0xc], ebx
jne 0x49e96f
jmp 0x49ee41
push dword [esp + 0x10]
push edi
push 1
lea ebx, [esp + 0xcdc]
push ebx
call fcn.004528b0
add esp, 0x10
lea esi, [esp + 0x2058]
push ebx
push esi
call fcn.00452f50
add esp, 8
movzx eax, byte [esp + 0x205c]
movsd xmm1, qword [esp + 0x2068]
mov edx, dword [esp + 0x2080]
movsd xmm0, qword [esp + 0x2060]
movsd xmm2, qword [esp + 0x2070]
mov esi, dword [esp + 0x2058]
movzx ecx, word [esp + 0x205e]
mov dword [esp + 0x90], eax
movzx eax, byte [esp + 0x205d]
movsd qword [esp + 0x228], xmm1
movsd xmm1, qword [esp + 0x2078]
cmp edx, 2
movsd qword [esp + 0x220], xmm0
movsd qword [esp + 0x230], xmm2
mov byte [esp + 0x1c], al
movsd qword [esp + 0x238], xmm1
jne 0x49ebcd
cmp byte [esp + 0x51], 0
je 0x49fa23
mov dword [esp + 0x220], 0x2020200
lea eax, [esp + 0x220]
push eax
lea esi, [esp + 0x205c]
push esi
call fcn.00414e10
add esp, 8
cmp byte [esp + 0x2080], 0
lea eax, [esp + 0x205c]
jne 0x49f6ae
cmp dword [esp + 0x2064], 0x80
jb 0x49f6a0
mov byte [esp + 0x2080], 1
push eax
call fcn.00416f00
add esp, 4
jmp 0x49f6ae
mov ecx, dword [esp + 0x1a20]
test ecx, ecx
je 0x49c49b
mov esi, dword [esp + 0x1a28]
mov eax, dword [esp + 0x1a24]
mov dword [esp + 0x2560], ecx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov byte [esp + 0x2069], 1
mov dword [esp + 0x205c], 0x1010000
mov dword [esp + 0x2058], 2
mov byte [esp + 0x2064], 1
mov word [esp + 0x2062], 0
mov dword [esp + 0x2065], 1
cmp esi, 0x1f5
mov dword [esp + 0x2564], eax
lea eax, [esp + 0x2067]
mov dword [esp + 0x2568], esi
mov dword [esp + 0x30], esi
adc cl, 1
mov byte [esp + 0x2060], cl
mov byte [esp + 0x2061], 0
push eax
lea eax, [esp + 0x63c]
push eax
call fcn.004120d0
add esp, 8
mov bh, byte [esp + 0x7d5]
mov esi, dword [esp + 0x640]
mov edx, dword [esp + 0x638]
mov ecx, dword [esp + 0x63c]
movzx eax, byte [esp + 0x644]
mov bl, byte [esp + 0x645]
movzx edi, word [esp + 0x646]
cmp bh, 2
mov dword [esp + 0xc], esi
jne 0x49ef81
mov word [esp + 0x10], di
mov dword [esp + 0x30], eax
mov esi, edx
jmp 0x49fdbe
movsd xmm2, qword [esp + 0x238]
movsd xmm1, qword [esp + 0x230]
mov eax, edx
mov edx, dword [esp + 0x2084]
movsd xmm0, qword [esp + 0x2088]
mov ebx, dword [esp + 0x90]
mov edi, ecx
mov dword [esp + 0x58], eax
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xd8], xmm1
movsd xmm2, qword [esp + 0x220]
movsd xmm1, qword [esp + 0x228]
mov dword [esp + 0x7c], edx
mov dl, 3
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x18], edx
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm2
jmp 0x49ffc5
mov esi, dword [esp + 0x27f0]
test esi, esi
je 0x49ee09
lea ebx, [edi + 4]
jmp 0x49edee
add ebx, 0x10
dec esi
je 0x49ee09
cmp dword [ebx], 0
je 0x49ede8
push dword [ebx - 4]
push 0
mov eax, dword [0x6074a0]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
jmp 0x49ede8
cmp dword [esp + 0x27ec], 0
je 0x49e8c4
mov eax, dword [0x6074a0]
push edi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49ddf1
mov dword [esp + 0x220], 4
mov dword [esp + 0x224], 0
movsd xmm0, qword [esp + 0x220]
mov eax, dword [esp + 0xc]
mov bl, 1
movsd qword [esp + 0x1798], xmm0
mov dword [esp + 0x17a0], eax
lea eax, [esp + 0x1798]
push eax
lea esi, [esp + 0x1a24]
push esi
call fcn.004f0ed0
add esp, 8
lea eax, [esp + 0x220]
push esi
push eax
call fcn.004f0850
add esp, 8
cmp word [esp + 0x220], 6
jne 0x49ef70
mov esi, dword [esp + 0x224]
test esi, esi
je 0x49e699
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x228]
mov dword [esp + 0x1658], esi
cmp edx, 2
mov dword [esp + 0x165c], eax
mov dword [esp + 0x1660], edx
jb 0x49f677
mov eax, 1
mov ebx, 0x1c
mov dword [esp + 0x10], edx
jmp 0x49eef7
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
add ebx, 0x1c
inc eax
cmp edx, eax
je 0x49f669
mov esi, dword [esp + 0x1660]
mov dword [esp + 0xc], eax
cmp esi, eax
jbe 0x4a10f6
mov edi, dword [esp + 0x1658]
add edi, ebx
lea ecx, [esp + 0x1a20]
mov edx, edi
call fcn.0049ad00
cmp byte [esp + 0x1a28], 2
je 0x49eee3
mov eax, dword [esp + 0x1a28]
movsd xmm0, qword [esp + 0x1a20]
test al, al
mov dword [esp + 0x4b0], eax
movsd qword [esp + 0x4a8], xmm0
jne 0x49ff19
mov ecx, dword [esp + 0x4a8]
lock dec dword [ecx]
jne 0x49eee3
mov edx, dword [esp + 0x4ac]
call fcn.00483ea0
jmp 0x49eee3
lea ecx, [esp + 0x220]
call fcn.00480060
jmp 0x49e699
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x648]
mov esi, eax
lea eax, [esp + 0xce8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64c]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x650]
push 0x185
push ecx
push eax
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x7d6]
lea ecx, [esp + 0xe6e]
push 0x14a
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xcd0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd8], eax
mov eax, esi
mov byte [esp + 0xcdc], al
mov eax, dword [esp + 0x24]
mov byte [esp + 0xcdd], bl
mov word [esp + 0xcde], di
mov dword [esp + 0xce4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xce0], eax
mov byte [esp + 0xe6d], bh
lea eax, [esp + 0xcd0]
push 0
push eax
lea eax, [esp + 0x640]
push eax
call fcn.00413d10
add esp, 0xc
mov esi, dword [esp + 0x638]
cmp esi, 3
jne 0x49fd6d
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.00413d10
add esp, 0xc
mov esi, dword [esp + 0x638]
cmp esi, 3
jne 0x49fd6d
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.00413d10
add esp, 0xc
mov eax, dword [esp + 0x638]
cmp eax, 3
jne 0x49fd6b
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xfa8], eax
push 0
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.00413d10
add esp, 0xc
mov eax, dword [esp + 0x638]
cmp eax, 3
jne 0x49fd6b
mov eax, dword [esp + 0x63c]
mov dword [esp + 0xfac], eax
lea eax, [esp + 0xcd0]
push eax
call fcn.00413440
add esp, 4
cmp dword [esp + 0x30], 0
je 0x49f440
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], 0
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
cmp eax, 0x7fffffff
mov dword [esp + 0xc], eax
jae 0x4a10e4
mov ecx, dword [esp + 0xf98]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
cmp ecx, edx
mov edi, dword [eax]
mov eax, dword [esp + 0xe88]
cmovae ecx, edx
mov dword [esp + 0xf98], ecx
mov ecx, dword [esp + 0xf9c]
mov dword [esp + 0x2a70], eax
cmp ecx, edx
cmovbe ecx, edx
cmp dword [esp + 0x18], eax
mov dword [esp + 0xf9c], ecx
jne 0x4a143d
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0xe84]
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
jne 0x49f1c1
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xe80]
call fcn.00484ab0
mov ecx, dword [esp + 0xe88]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xe80]
mov esi, dword [esp + 0xc]
mov dword [edx + ecx*4], esi
mov dword [esp + 0xe88], eax
mov eax, dword [esp + 0xe70]
cmp byte [eax], 0
je 0x49f1f4
push esi
push edi
lea eax, [esp + 0xcf8]
push eax
call fcn.00418620
add esp, 0xc
mov eax, dword [esp + 0xfa8]
test esi, esi
mov dword [esp + 0x30], eax
je 0x49f3e1
add dword [esp + 0xc], edi
mov esi, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
jmp 0x49f250
or bl, 0x20
mov eax, ebx
add esi, dword [esp + 0xe74]
movzx eax, al
push edi
push eax
push esi
call fcn.00411d70
add esp, 0xc
mov esi, dword [esp + 0x24]
inc dword [esp + 0x1c]
mov dword [esp + 0x30], edi
inc esi
cmp esi, dword [esp + 0xc]
je 0x49f3e5
movzx ebx, byte [esi]
test byte [esp + 0x10], 1
mov edi, dword [esp + 0x30]
mov al, 1
jne 0x49f283
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x4a1396
mov eax, dword [esp + 0xe74]
mov ecx, edi
shl ecx, 5
cmp dword [eax + ecx + 0x14], 0
setne al
test al, al
mov dword [esp + 0x10], eax
je 0x49f29c
mov eax, dword [esp + 0xe70]
cmp byte [eax + 2], 1
je 0x49f423
push ebx
push ebx
lea eax, [esp + 0xcd8]
push eax
call fcn.00417620
add esp, 0xc
mov eax, dword [esp + 0xe70]
cmp byte [eax + 1], 0
je 0x49f2ef
mov eax, ebx
add al, 0xbf
cmp al, 0x1a
jae 0x49f2c9
mov eax, ebx
or al, 0x20
jmp 0x49f2da
mov eax, ebx
mov ecx, ebx
add al, 0x9f
xor cl, 0x20
cmp al, 0x1a
movzx eax, cl
cmovae eax, ebx
movzx eax, al
push eax
push eax
lea eax, [esp + 0xcd8]
push eax
call fcn.00417620
add esp, 0xc
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x4a1388
mov ecx, dword [esp + 0xe74]
mov dword [esp + 0x24], esi
mov esi, edi
shl esi, 5
mov eax, dword [ecx + esi]
mov ecx, dword [ecx + esi + 8]
cmp ecx, 0x100
jne 0x49f323
lea edx, [eax + ebx*8 + 4]
jmp 0x49f33a
add eax, 0xfffffffc
shl ecx, 3
test ecx, ecx
je 0x49f345
add ecx, 0xfffffff8
cmp byte [eax + 4], bl
lea edx, [eax + 8]
mov eax, edx
jne 0x49f329
mov edi, dword [edx]
cmp edi, 1
jne 0x49f239
push dword [esp + 0x1c]
lea eax, [esp + 0xcd4]
push eax
lea eax, [esp + 0x640]
push eax
call fcn.00413d10
add esp, 0xc
mov ecx, dword [esp + 0x638]
mov edi, dword [esp + 0x63c]
cmp ecx, 3
jne 0x4a0c93
mov eax, dword [esp + 0xe7c]
cmp dword [esp + 0x30], eax
jae 0x4a138f
mov eax, dword [esp + 0xe74]
add eax, esi
push edi
push ebx
push eax
call fcn.00411d70
add esp, 0xc
mov eax, dword [esp + 0xe70]
cmp byte [eax + 1], 0
je 0x49f239
mov eax, dword [esp + 0xe7c]
cmp dword [esp + 0x30], eax
jae 0x4a13c6
mov eax, ebx
add al, 0xbf
cmp al, 0x1a
jb 0x49f21f
mov eax, ebx
mov ecx, ebx
add al, 0x9f
xor cl, 0x20
cmp al, 0x1a
movzx eax, cl
cmovae eax, ebx
jmp 0x49f224
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0xe7c]
cmp edi, eax
jae 0x4a13fb
mov eax, dword [esp + 0xe74]
shl edi, 5
mov edx, dword [eax + edi + 0x14]
lea esi, [eax + edi + 0xc]
cmp edx, dword [eax + edi + 0x10]
jne 0x49f416
mov ecx, esi
call fcn.00484ab0
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esp + 0x18]
mov dword [eax + edx*4], ecx
inc edx
mov dword [esi + 8], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add eax, 0xc
mov dword [esp + 0x18], ecx
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
jne 0x49f12a
lea eax, [esp + 0xcd0]
push eax
call fcn.004135a0
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.00413730
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.00413a90
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.004124b0
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.004138d0
add esp, 4
lea eax, [esp + 0xcd0]
push eax
call fcn.00412bb0
add esp, 4
lea eax, [esp + 0xcd0]
push eax
lea eax, [esp + 0x63c]
push eax
call fcn.00417780
add esp, 8
lea eax, [esp + 0xe98]
push 0x100
lea esi, [esp + 0x63c]
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0xcf0]
push eax
push esi
call fcn.00417c70
add esp, 8
mov ecx, dword [esp + 0xe8c]
lea esi, [esp + 0xe8c]
test ecx, ecx
je 0x49f509
lock dec dword [ecx]
jne 0x49f509
mov edx, dword [esp + 0xe90]
call fcn.00483e10
mov eax, dword [esp + 0x640]
movsd xmm0, qword [esp + 0x638]
mov dword [esi + 8], eax
movsd qword [esi], xmm0
lea eax, [esp + 0xcd0]
push eax
call fcn.00413e50
add esp, 4
mov esi, dword [esp + 0xe8c]
xor eax, eax
test esi, esi
setne al
mov eax, dword [esp + eax*8 + 0xfa4]
mov dword [esp + 0xfa0], eax
mov eax, dword [esp + 0xe7c]
mov edi, dword [esp + 0xe80]
mov ebx, dword [esp + 0xe84]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe88]
mov dword [esp + 0x30], eax
lea eax, [esp + 0xe90]
push 0x128
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0xe74]
movsd qword [esp + 0x10], xmm0
lea ecx, [esp + 0xcf0]
call fcn.00481430
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1a2c], edi
mov dword [esp + 0x1a30], ebx
movsd xmm0, qword [esp + 0x10]
mov dword [esp + 0x1a38], esi
mov dword [esp + 0x1a34], eax
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x1a20], xmm0
mov dword [esp + 0x1a28], eax
lea eax, [esp + 0x1a3c]
push 0x128
lea ecx, [esp + 0x63c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x2060]
cmp eax, 3
jne 0x4a0cc6
push 0x144
lea eax, [esp + 0x1a24]
push eax
lea esi, [esp + 0xcd8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x2058]
lea ecx, [esp + 0x220]
push esi
push eax
push ecx
call fcn.00407220
add esp, 0xc
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x220]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x228]
mov dword [esp + 0x30], eax
jmp 0x4a118b
mov esi, dword [esp + 0x1658]
mov edx, dword [esp + 0x1660]
mov ecx, esi
call fcn.00480590
cmp dword [esp + 0x165c], 0
je 0x49e699
mov eax, dword [0x6074a0]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49e699
push dword [esp + 0x10]
push edi
push eax
call fcn.00416dc0
add esp, 0xc
push esi
push ebx
call fcn.00414ec0
add esp, 8
movzx ecx, byte [esp + 0xd10]
mov dword [esp + 0x54], edi
cmp cl, 2
jne 0x49f70f
mov edi, dword [esp + 0x2064]
mov eax, dword [esp + 0x205c]
test edi, edi
mov dword [esp + 0x18], eax
je 0x49f80a
mov eax, dword [esp + 0x18]
mov esi, dword [0x6074a0]
lea ebx, [eax + 4]
jmp 0x49f6fc
add ebx, 0xc
dec edi
je 0x49f80a
cmp dword [ebx], 0
je 0x49f6f2
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x49f6f2
movsd xmm1, qword [esp + 0xd00]
movsd xmm2, qword [esp + 0xcf8]
movsd xmm0, qword [esp + 0xd08]
movzx eax, word [esp + 0xd11]
movzx edx, byte [esp + 0xd13]
mov edi, dword [esp + 0x2064]
mov byte [esp + 0x94], cl
movsd qword [esp + 0x17c8], xmm1
movsd xmm1, qword [esp + 0xcf0]
movsd qword [esp + 0x17c0], xmm2
movsd xmm2, qword [esp + 0xce8]
movsd qword [esp + 0x17d0], xmm0
test edi, edi
movsd qword [esp + 0x17b8], xmm1
movsd xmm1, qword [esp + 0xce0]
movsd qword [esp + 0x17b0], xmm2
movsd xmm2, qword [esp + 0xcd0]
movsd qword [esp + 0x17a8], xmm1
movsd xmm1, qword [esp + 0xcd8]
movsd qword [esp + 0x1798], xmm2
movsd qword [esp + 0x17a0], xmm1
mov word [esp + 0x17d9], ax
mov byte [esp + 0x17db], dl
mov byte [esp + 0x17d8], cl
mov ecx, dword [esp + 0x205c]
mov dword [esp + 0x18], ecx
je 0x49f84e
mov eax, dword [esp + 0x18]
mov esi, dword [0x6074a0]
lea ebx, [eax + 4]
jmp 0x49f7f7
add ebx, 0xc
dec edi
je 0x49f84e
cmp dword [ebx], 0
je 0x49f7f1
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x49f7f1
cmp dword [esp + 0x2060], 0
je 0x49f826
mov eax, dword [0x6074a0]
push dword [esp + 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x206c], 0
je 0x49fa1f
mov eax, dword [0x6074a0]
push dword [esp + 0x2068]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49fa1f
cmp dword [esp + 0x2060], 0
je 0x49f86a
mov eax, dword [0x6074a0]
push dword [esp + 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x206c], 0
je 0x49f889
mov eax, dword [0x6074a0]
push dword [esp + 0x2068]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov byte [esp + 0x13e], 1
mov word [esp + 0x13c], 0
mov word [esp + 0x13f], 0x201
lea edi, [esp + 0x13c]
lea ecx, [esp + 0x2058]
mov edx, edi
push dword [esp + 0x10]
push dword [esp + 0x58]
call fcn.004756f0
add esp, 8
cmp dword [esp + 0x2058], 0
jne 0x49fa0f
push 0x144
lea eax, [esp + 0x2060]
push eax
lea esi, [esp + 0x228]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push esi
push edi
lea eax, [esp + 0xcd8]
push eax
call fcn.0040d430
add esp, 0xc
lea eax, [esp + 0x220]
push eax
call fcn.00481340
add esp, 4
cmp dword [esp + 0xcd0], 0
jne 0x49fa0f
movzx eax, byte [esp + 0xcd8]
movsd xmm2, qword [esp + 0xce4]
movsd xmm1, qword [esp + 0xcec]
mov esi, dword [esp + 0xcd4]
movsd xmm0, qword [esp + 0xcdc]
mov dword [esp + 0x90], eax
movzx eax, byte [esp + 0xcd9]
movsd qword [esp + 0x188], xmm2
movsd qword [esp + 0x190], xmm1
movsd xmm2, qword [esp + 0xcf4]
movsd xmm1, qword [esp + 0xd04]
movsd qword [esp + 0x180], xmm0
mov byte [esp + 0x1c], al
movzx eax, word [esp + 0xcda]
movsd qword [esp + 0x198], xmm2
movaps xmmword [esp + 0x120], xmm1
mov word [esp + 0x52], ax
mov eax, dword [esp + 0xcfc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd00]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0xd0c]
lea edi, [esp + 0x2560]
push 0x120
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx ecx, byte [esp + 0xe2c]
movzx eax, word [esp + 0xe2d]
movzx edx, byte [esp + 0xe2f]
cmp cl, 3
mov word [esp + 0x251c], ax
mov byte [esp + 0x251e], dl
mov byte [esp + 0x5c], cl
jne 0x4a05f7
lea eax, [esp + 0x1798]
push eax
call fcn.00480c50
add esp, 4
mov edi, dword [esp + 0x54]
cmp byte [esp + 0x51], 0
lea edx, [esp + 0x17a7]
mov dword [esp + 0x179c], 0x1000000
mov dword [esp + 0x1798], 2
mov dword [esp + 0x17a5], 1
mov dword [esp + 0x17a0], 2
setne byte [esp + 0x17a9]
setne byte [esp + 0x179e]
setne byte [esp + 0x17a4]
lea ecx, [esp + 0xcd0]
push dword [esp + 0x10]
push edi
call fcn.004756f0
add esp, 8
cmp dword [esp + 0xcd0], 0
je 0x49faf7
mov eax, dword [esp + 0xce0]
movzx edx, byte [esp + 0xce5]
movzx ecx, word [esp + 0xce6]
mov esi, dword [esp + 0xcd8]
mov edi, dword [esp + 0xcdc]
movzx ebx, byte [esp + 0xce4]
mov dword [esp + 0x54], eax
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
cmp esi, 3
jne 0x4a01a1
cmp byte [esp + 0x1c], 3
je 0x4a01a1
mov esi, dword [esp + 0x54]
mov al, 6
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
movzx edi, word [esp + 0x52]
jmp 0x49ffc5
mov esi, dword [esp + 0xcec]
mov ebx, dword [esp + 0xce4]
mov edi, dword [esp + 0xce8]
lea eax, [esp + 0x23c]
lea ecx, [esp + 0xcf0]
push 0x128
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x17a0]
movsd xmm0, qword [esp + 0xcd4]
movsd xmm1, qword [esp + 0xcdc]
cmp eax, 3
movsd qword [esp + 0x220], xmm0
movsd qword [esp + 0x228], xmm1
mov dword [esp + 0x230], ebx
mov dword [esp + 0x238], esi
mov dword [esp + 0x234], edi
jne 0x49fbc4
lea eax, [esp + 0x220]
push 0x144
push eax
lea esi, [esp + 0xcd8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1798]
lea ecx, [esp + 0x180]
push esi
push eax
push ecx
call fcn.00407220
add esp, 0xc
mov eax, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
movzx ebx, byte [esp + 0x188]
mov dword [esp + 0x10], eax
jmp 0x49ffb3
test eax, eax
je 0x49ff3d
cmp eax, 1
jne 0x4a0449
lea eax, [esp + 0x220]
lea ecx, [esp + 0x1798]
push eax
push ecx
lea eax, [esp + 0x2060]
push eax
call fcn.004109d0
add esp, 0xc
movzx eax, byte [esp + 0x219c]
movzx edx, byte [esp + 0x2065]
movzx ecx, word [esp + 0x2066]
mov esi, dword [esp + 0x2058]
mov edi, dword [esp + 0x205c]
movzx ebx, byte [esp + 0x2064]
cmp al, 3
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x2060]
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
mov dword [esp + 0x54], eax
je 0x4a04b1
mov eax, dword [esp + 0x2068]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x206c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x2070]
lea ecx, [esp + 0x2560]
push 0x12c
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x219d]
mov word [esp + 0xe1d], ax
movzx eax, byte [esp + 0x219f]
mov byte [esp + 0xe1f], al
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcd8], esi
mov dword [esp + 0xcdc], edi
mov dword [esp + 0xce0], eax
movzx eax, byte [esp + 0x1c]
mov byte [esp + 0xce4], bl
mov byte [esp + 0xce5], al
movzx eax, word [esp + 0x52]
mov word [esp + 0xce6], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xcec], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xce8], eax
push 0x12c
lea eax, [esp + 0x2564]
push eax
lea eax, [esp + 0xcf8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x10]
mov byte [esp + 0xe1c], al
mov eax, dword [0x6074b4]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x150
call fcn.00401610
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x4a14d8
push 0x150
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x5ac7dc
mov bl, 1
jmp 0x4a05d6
mov esi, eax
mov eax, dword [esp + 0x640]
movzx ecx, word [esp + 0x646]
mov edi, dword [esp + 0x63c]
movzx ebx, byte [esp + 0x645]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
lea ecx, [esp + 0xcf0]
call fcn.00481430
lea eax, [esp + 0xe74]
push eax
call fcn.00481340
add esp, 4
mov ecx, edi
cmp esi, 3
jne 0x49fe9c
cmp bl, 3
je 0x49fe9c
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd0], ecx
mov dword [esp + 0xcd4], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0xcd8], al
movzx eax, word [esp + 0x10]
mov byte [esp + 0xcd9], bl
mov word [esp + 0xcda], ax
lea ecx, [esp + 0xcd0]
call fcn.004a2140
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2560]
mov ebx, dword [esp + 0x2568]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x49fe55
mov ecx, dword [esp + 0xc]
mov edi, dword [0x6074a0]
lea esi, [ecx + 4]
jmp 0x49fe3f
add esi, 0xc
dec ebx
je 0x49fe55
cmp dword [esi], 0
je 0x49fe39
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
jmp 0x49fe39
cmp dword [esp + 0x2564], 0
je 0x49fe74
mov eax, dword [0x6074a0]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x27e8]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x5ae920
test edi, edi
mov dword [eax], 2
jne 0x49edd8
jmp 0x49e8c4
mov edi, dword [esp + 0x2568]
mov eax, dword [esp + 0x2560]
test edi, edi
mov dword [esp + 0xc], eax
je 0x49feda
mov eax, dword [esp + 0xc]
mov esi, dword [0x6074a0]
lea ebx, [eax + 4]
jmp 0x49fec7
add ebx, 0xc
dec edi
je 0x49feda
cmp dword [ebx], 0
je 0x49fec1
push dword [ebx - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x49fec1
cmp dword [esp + 0x2564], 0
mov esi, dword [esp + 0x20]
je 0x49c49b
mov eax, dword [0x6074a0]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x49c49b
push 0x5ae4d4
push 0
push 0
call fcn.00425270
add esp, 0xc
jmp 0x4a153c
mov ebx, esi
sub ebx, dword [esp + 0xc]
jb 0x4a149f
jne 0x4a04c6
lea eax, [ebx + ebx*8]
mov ecx, 4
lea esi, [eax + eax*2]
add esi, ebx
jmp 0x4a073f
lea eax, [esp + 0xcd8]
lea ecx, [esp + 0x220]
push 0x144
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x6074b4]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x14c
call fcn.00401610
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x4a14b1
push 0x14c
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x5ac758
xor ebx, ebx
movzx eax, byte [esp + 0x17a1]
mov byte [esp + 0x1c], al
mov al, 6
mov dword [esp + 0x18], eax
movsd xmm1, qword [esp + 0xd8]
movsd xmm0, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xc8]
lea eax, [esp + 0xd10]
movsd qword [esp + 0xcf0], xmm1
movsd xmm1, qword [esp + 0xd0]
movsd qword [esp + 0xcf8], xmm0
movsd qword [esp + 0xce0], xmm2
movsd qword [esp + 0xce8], xmm1
lea ecx, [esp + 0x27e8]
push 0x120
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, byte [esp + 0x5c]
movsd xmm0, qword [esp + 0x1658]
movsd xmm1, qword [esp + 0x1660]
mov byte [esp + 0xe30], al
movzx eax, word [esp + 0xb0]
mov word [esp + 0xe31], ax
movzx eax, byte [esp + 0xb2]
mov byte [esp + 0xe33], al
movsd qword [esp + 0xe34], xmm0
movsd xmm0, qword [esp + 0x1668]
movzx eax, byte [esp + 0x94]
movsd qword [esp + 0xe3c], xmm1
movsd qword [esp + 0xe44], xmm0
movsd xmm0, qword [esp + 0x1670]
movsd qword [esp + 0xe4c], xmm0
movsd xmm0, qword [esp + 0x1678]
movsd qword [esp + 0xe54], xmm0
movsd xmm0, qword [esp + 0x1680]
movsd qword [esp + 0xe5c], xmm0
movsd xmm0, qword [esp + 0x1688]
movsd qword [esp + 0xe64], xmm0
movsd xmm0, qword [esp + 0x1690]
movsd qword [esp + 0xe6c], xmm0
mov byte [esp + 0xe74], al
movzx eax, word [esp + 0x98]
movaps xmm0, xmmword [esp + 0x120]
mov word [esp + 0xe75], ax
movzx eax, byte [esp + 0x9a]
mov byte [esp + 0xe77], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xcd0], al
movzx eax, byte [esp + 0x28]
mov byte [esp + 0xcd1], al
mov eax, dword [esp + 0x10]
mov dword [esp + 0xcd4], eax
movzx eax, byte [esp + 0x1c]
mov dword [esp + 0xcd8], esi
mov byte [esp + 0xcdc], bl
mov byte [esp + 0xcdd], al
mov eax, dword [esp + 0x58]
mov word [esp + 0xcde], di
mov dword [esp + 0xd00], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xd04], eax
movlps qword [esp + 0xd08], xmm0
lea eax, [esp + 0x5f4]
lea ecx, [esp + 0xcd0]
push ecx
push eax
call fcn.004c4e60
add esp, 8
movzx eax, byte [esp + 0x5fc]
cmp al, 2
jne 0x4a020f
mov eax, dword [esp + 0x640]
lea edi, [esp + 0x4a8]
mov ecx, 0x11
lea esi, [esp + 0x644]
mov dword [esp + 0x1c], eax
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x68c]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0xcc8]
mov esi, dword [esp + 0xccc]
mov eax, dword [esp + 0x1610]
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], 0
jne 0x49e498
jmp 0x49e4e7
mov ecx, dword [esp + 0x5f4]
movzx esi, word [esp + 0x5fd]
movzx edx, byte [esp + 0x5ff]
mov ebx, dword [esp + 0x5f8]
test al, al
mov dword [esp + 0x10], ecx
mov word [esp + 0x84], si
mov byte [esp + 0x86], dl
je 0x4a03df
mov eax, dword [esp + 0x640]
lea esi, [esp + 0x64c]
lea edi, [esp + 0x4a8]
mov ecx, 0x11
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x644]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x648]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x690]
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xcc8]
movzx edx, word [esp + 0x84]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xccc]
mov word [esp + 0x1379], dx
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x86]
mov byte [esp + 0x137b], al
lea ecx, [esp + 0x1610]
call fcn.00480520
lea edi, [esp + 0xcec]
mov ecx, 0x11
lea esi, [esp + 0x4a8]
lea eax, [esp + 0xd30]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcdc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xcd8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xce4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x136c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1368], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1370], eax
mov eax, dword [0x6074b4]
mov dword [esp + 0x1374], ebx
mov byte [esp + 0x1378], 1
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 8
push 0x6b0
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a1409
mov esi, eax
push 0x6b0
lea eax, [esp + 0xcd4]
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x5ae710
jmp 0x49e8b3
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x4a8]
mov ecx, 0x11
lea esi, [esp + 0x644]
mov ebx, dword [esp + 0x640]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0x68c]
push eax
lea eax, [esp + 0x1a28]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xcc8]
mov esi, dword [esp + 0xccc]
lock dec dword [ecx]
mov dword [esp + 0x1c], ebx
jne 0x4a01ec
mov edx, dword [esp + 0x18]
call fcn.00483ea0
jmp 0x4a01ec
lea eax, [esp + 0x17a2]
lea ecx, [esp + 0x220]
push ecx
push eax
lea eax, [esp + 0x2060]
push eax
call fcn.0040d430
add esp, 0xc
cmp dword [esp + 0x2058], 0
je 0x4a0512
mov eax, dword [esp + 0x2068]
movzx edx, byte [esp + 0x206d]
movzx ecx, word [esp + 0x206e]
mov esi, dword [esp + 0x2060]
mov edi, dword [esp + 0x2064]
movzx ebx, byte [esp + 0x206c]
mov dword [esp + 0x54], eax
mov byte [esp + 0x1c], dl
mov word [esp + 0x52], cx
lea eax, [esp + 0x220]
push eax
call fcn.00481340
add esp, 4
jmp 0x49facb
cmp ebx, 0x4924925
setb al
jae 0x4a14c2
lea ecx, [ebx + ebx*8]
lea esi, [ecx + ecx*2]
xor ecx, ecx
mov cl, al
add esi, ebx
shl ecx, 2
test esi, esi
mov dword [esp + 0x10], ecx
js 0x4a14c2
je 0x4a0733
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push dword [esp + 0x10]
push esi
call fcn.00401610
add esp, 8
mov ecx, eax
jmp 0x4a0737
mov esi, dword [esp + 0x2074]
mov ebx, dword [esp + 0x206c]
mov edi, dword [esp + 0x2070]
lea eax, [esp + 0x2078]
lea ecx, [esp + 0xcf4]
push 0x140
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x205c]
movsd xmm1, qword [esp + 0x2064]
mov eax, dword [0x6074b4]
movsd qword [esp + 0xcd8], xmm0
movsd qword [esp + 0xce0], xmm1
mov dword [esp + 0xce8], ebx
mov dword [esp + 0xcf0], esi
mov dword [esp + 0xcec], edi
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x164
call fcn.00401610
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x4a14e9
push 0x164
lea eax, [esp + 0xcd4]
push eax
push dword [esp + 0x18]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, 0x5ac860
mov bl, 2
movzx eax, byte [esp + 0x17a1]
mov byte [esp + 0x1c], al
lea eax, [esp + 0x220]
push eax
call fcn.00481340
add esp, 4
jmp 0x49ffbf
movsd xmm1, qword [esp + 0x190]
movsd xmm0, qword [esp + 0x198]
movsd xmm2, qword [esp + 0x180]
lea ebx, [esp + 0x17d9]
movsd qword [esp + 0xd8], xmm1
movsd xmm1, qword [esp + 0x188]
movsd qword [esp + 0xe0], xmm0
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xd0], xmm1
lea eax, [esp + 0x27e8]
push 0x120
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x251c]
movsd xmm1, qword [esp + 0x17c8]
movsd xmm2, qword [esp + 0x17c0]
movsd xmm0, qword [esp + 0x17d0]
mov word [esp + 0xb0], ax
movzx eax, byte [esp + 0x251e]
movsd qword [esp + 0x1688], xmm1
movsd xmm1, qword [esp + 0x17b8]
movsd qword [esp + 0x1680], xmm2
movsd xmm2, qword [esp + 0x17b0]
movsd qword [esp + 0x1690], xmm0
mov byte [esp + 0xb2], al
movzx eax, byte [ebx + 2]
movsd qword [esp + 0x1678], xmm1
movsd xmm1, qword [esp + 0x17a8]
movsd qword [esp + 0x1670], xmm2
movsd xmm2, qword [esp + 0x1798]
mov byte [esp + 0x9a], al
movzx eax, word [ebx]
movsd qword [esp + 0x1668], xmm1
movsd xmm1, qword [esp + 0x17a0]
mov ebx, dword [esp + 0x90]
movsd qword [esp + 0x1658], xmm2
mov word [esp + 0x98], ax
mov al, 4
movsd qword [esp + 0x1660], xmm1
mov dword [esp + 0x18], eax
jmp 0x49faed
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4a14c9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1660], eax
push esi
push edi
mov esi, ecx
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x1a20], esi
mov dword [esp + 0x1a24], ebx
mov dword [esp + 0x1a28], ebx
lea eax, [esp + 0x1a20]
push eax
lea eax, [esp + 0x224]
push eax
call fcn.004f0ed0
add esp, 8
mov eax, dword [esp + 0x1660]
movsd xmm0, qword [esp + 0x1658]
mov dword [esp + 0x17a0], eax
movsd qword [esp + 0x1798], xmm0
lea eax, [esp + 0x1798]
push eax
lea eax, [esp + 0x1a24]
push eax
call fcn.004f0ed0
add esp, 8
mov al, 1
mov dword [esp + 0xc], eax
lea edi, [esp + 0x220]
lea ecx, [esp + 0x1798]
mov edx, edi
call fcn.0049ad00
movzx eax, byte [esp + 0x17a0]
cmp al, 2
sete byte [esp + 0x10]
jne 0x4a0800
mov ecx, dword [esp + 0x4a8]
mov edx, dword [esp + 0x4ac]
mov dword [esp + 0xc], 0
jmp 0x4a0827
mov ecx, dword [esp + 0x1798]
mov edx, dword [esp + 0x179c]
mov bl, 1
test al, al
mov dword [esp + 0xc], ebx
je 0x4a0c41
lea eax, [esp + 0x17a1]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edx
movzx eax, byte [esi + 2]
movzx esi, word [esi]
mov byte [esp + 0xca], al
mov word [esp + 0xc8], si
movzx eax, word [esp + 0x1a3a]
movsd xmm0, qword [esp + 0x1a22]
movsd xmm2, qword [esp + 0x1a2a]
movsd xmm1, qword [esp + 0x1a32]
movzx esi, word [esp + 0x1a20]
mov word [esp + 0x2800], ax
movzx eax, word [esp + 0xc8]
movsd qword [esp + 0x27e8], xmm0
movsd qword [esp + 0x27f0], xmm2
movsd qword [esp + 0x27f8], xmm1
mov word [esp + 0x5f4], ax
movzx eax, byte [esp + 0xca]
mov byte [esp + 0x5f6], al
push edi
call fcn.004f54f0
add esp, 4
lea ecx, [esp + 0x220]
call fcn.00480060
mov eax, dword [0x6074a0]
push dword [esp + 0x238]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
cmp byte [esp + 0x10], 0
jne 0x4a0901
mov ecx, dword [esp + 0x4a8]
lock dec dword [ecx]
jne 0x4a0901
mov edx, dword [esp + 0x4ac]
xor ebx, ebx
call fcn.00483ea0
cmp si, 8
je 0x49e699
movzx eax, word [esp + 0x2800]
movsd xmm0, qword [esp + 0x27f8]
movsd xmm1, qword [esp + 0x27f0]
mov word [esp + 0x17b2], ax
movzx eax, byte [esp + 0x5f6]
movsd qword [esp + 0x17aa], xmm0
movsd xmm0, qword [esp + 0x27e8]
movsd qword [esp + 0x17a2], xmm1
mov byte [esp + 0x4b3], al
movzx eax, word [esp + 0x5f4]
movsd qword [esp + 0x179a], xmm0
mov word [esp + 0x1798], si
mov word [esp + 0x4b1], ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4a8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4ac], eax
mov eax, dword [esp + 0x20]
mov byte [esp + 0x4b0], 1
movzx ecx, byte [eax + 0x3f]
mov bh, byte [eax + 0x3c]
mov bl, byte [eax + 0x3d]
mov edi, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
mov byte [esp + 0xc], cl
lea eax, [esp + 0x1a20]
push eax
call fcn.004b3080
add esp, 4
cmp edi, 2
mov eax, 1
mov ecx, 0xa00000
movzx edx, bl
cmovne eax, edi
cmove esi, ecx
test bh, bh
mov ecx, 0xa
cmovne ecx, edx
cmp byte [esp + 0xc], 0
mov dword [esp + 0x1a20], eax
lea eax, [esp + 0x1798]
mov dword [esp + 0x1a24], esi
mov byte [esp + 0x1a28], 1
mov byte [esp + 0x1a29], cl
mov dword [esp + 0x220], eax
setne byte [esp + 0x1a2a]
mov word [esp + 0x1a2b], 1
mov byte [esp + 0x1a2d], 2
lea edx, [esp + 0x1a20]
lea ecx, [esp + 0x27e8]
push 1
lea eax, [esp + 0x224]
push eax
call fcn.004b3330
add esp, 8
lea ebx, [esp + 0x1a20]
mov ecx, ebx
call fcn.00482380
cmp dword [esp + 0x27e8], 0x27
jne 0x4a0acc
mov eax, dword [esp + 0x27ec]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1658], eax
mov dword [esp + 0xc], eax
cmp byte [ecx + 0x41], 0
je 0x4a0e6d
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x220]
push dword [esp + 0xc]
call fcn.004ae4c0
add esp, 4
movzx edx, byte [esp + 0x223]
movzx ecx, word [esp + 0x221]
movzx eax, byte [esp + 0x220]
shl edx, 0x10
mov dword [esp + 0x24], eax
or ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x224]
mov dword [esp + 0x18], ecx
jmp 0x4a0e99
movsd xmm1, qword [esp + 0x2818]
movsd xmm2, qword [esp + 0x2810]
mov eax, dword [esp + 0xcd0]
movsd xmm0, qword [esp + 0x2820]
lea edi, [esp + 0x2560]
mov ecx, 0x11
lea esi, [esp + 0xcdc]
movsd qword [esp + 0x1a50], xmm1
movsd xmm1, qword [esp + 0x2808]
movsd qword [esp + 0x1a48], xmm2
movsd xmm2, qword [esp + 0x2800]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcd4]
movsd qword [esp + 0x1a58], xmm0
movsd qword [esp + 0x1a40], xmm1
movsd xmm1, qword [esp + 0x27f8]
movsd qword [esp + 0x1a38], xmm2
movsd xmm2, qword [esp + 0x27e8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xcd8]
movsd qword [esp + 0x1a30], xmm1
movsd xmm1, qword [esp + 0x27f0]
movsd qword [esp + 0x1a20], xmm2
mov dword [esp + 0x1c], eax
movsd qword [esp + 0x1a28], xmm1
rep movsd dword es:[edi], dword [esi]
push 0x634
lea eax, [esp + 0xd24]
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1354]
movzx esi, byte [esp + 0x1363]
movzx edi, word [esp + 0x1361]
mov edx, dword [esp + 0x1364]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1358]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x135c]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x1360]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x1a20]
call fcn.004822d0
mov eax, dword [esp + 0x28]
lock dec dword [eax]
jne 0x4a0c20
mov edx, dword [esp + 0x4ac]
mov ecx, dword [esp + 0x28]
call fcn.00483ea0
xor ebx, ebx
lea ecx, [esp + 0x1798]
call fcn.0047fe00
shl esi, 0x10
lea ebx, [esp + 0x638]
add dword [esp + 0x10], esi
jmp 0x49e771
mov eax, dword [esp + 0x4a8]
lea esi, [esp + 0x4b1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4ac]
mov dword [esp + 0x18], eax
movzx eax, word [esi]
mov word [esp + 0xc8], ax
mov ah, byte [esi + 2]
mov byte [esp + 0xca], ah
lock dec dword [ecx]
mov byte [esp + 0x10], 1
jne 0x4a0e60
mov dword [esp + 0xc], 0
call fcn.00483ea0
jmp 0x4a0849
mov eax, dword [esp + 0x640]
movzx edx, word [esp + 0x646]
movzx ebx, byte [esp + 0x645]
mov esi, ecx
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
mov word [esp + 0x10], dx
jmp 0x49fd9c
ud2
test eax, eax
je 0x4a110f
cmp eax, 1
jne 0x4a1198
lea eax, [esp + 0x2058]
lea ecx, [esp + 0x1a20]
push ecx
push eax
lea eax, [esp + 0x640]
push eax
call fcn.004109d0
add esp, 0xc
mov eax, dword [esp + 0x640]
mov bh, byte [esp + 0x77c]
movzx ecx, word [esp + 0x646]
mov esi, dword [esp + 0x638]
mov edi, dword [esp + 0x63c]
mov bl, byte [esp + 0x645]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x644]
cmp bh, 3
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
je 0x4a1200
mov eax, dword [esp + 0x648]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64c]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x2a70]
push 0x12c
lea eax, [esp + 0x654]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movzx eax, word [esp + 0x77d]
mov word [esp + 0xe1d], ax
movzx eax, byte [esp + 0x77f]
mov byte [esp + 0xe1f], al
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcd8], esi
mov dword [esp + 0xcdc], edi
mov dword [esp + 0xce0], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0xce4], al
movzx eax, word [esp + 0x10]
mov byte [esp + 0xce5], bl
mov word [esp + 0xce6], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xcec], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xce8], eax
push 0x12c
lea eax, [esp + 0x2a74]
push eax
lea eax, [esp + 0xcf8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x6074b4]
mov byte [esp + 0xe1c], bh
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x150
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a151c
mov edi, eax
push 0x150
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, 1
mov dword [esp + 0xc], 0x5ac7dc
jmp 0x4a1351
mov dword [esp + 0xc], 0
jmp 0x4a0849
mov al, 2
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 2
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x24], eax
movups xmm0, xmmword [esp + 0xcd0]
mov eax, dword [esp + 0xce0]
lea esi, [esp + 0xce4]
lea edi, [esp + 0x2560]
mov ecx, 0x11
mov dword [esp + 0x1c], eax
movaps xmmword [esp + 0x30], xmm0
lea eax, [esp + 0xd28]
rep movsd dword es:[edi], dword [esi]
push 0x634
push eax
lea eax, [esp + 0x640]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x135c]
movsd xmm0, qword [esp + 0x4a8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1360]
movsd qword [esp + 0x1ca0], xmm0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1364]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4b0]
mov dword [esp + 0x1ca8], eax
lea eax, [esp + 0x228]
push 0x280
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x28c
push ebx
lea eax, [esp + 0x2060]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor ebx, ebx
lea ecx, [esp + 0x1798]
call fcn.0047fe00
movdqa xmm1, xmmword [esp + 0x30]
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 3
or ecx, eax
jne 0x4a0fa0
movdqa xmm1, xmmword [esp + 0x30]
lea ebx, [esp + 0x638]
pshufd xmm0, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
movd dword [esp + 0xc], xmm0
movd dword [esp + 0x30], xmm1
jmp 0x49e771
lea edi, [esp + 0xcec]
lea esi, [esp + 0x2560]
mov ecx, 0x11
lea eax, [esp + 0xd30]
rep movsd dword es:[edi], dword [esi]
push 0x634
lea ecx, [esp + 0x63c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1378]
push 0x28c
lea ecx, [esp + 0x205c]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x180]
movaps xmm0, xmmword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1609], eax
mov eax, dword [esp + 0x183]
mov dword [esp + 0x160c], eax
mov eax, dword [esp + 0x1c]
movups xmmword [esp + 0xcd8], xmm0
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1364], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x136c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1368], eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1370], al
mov eax, ecx
mov word [esp + 0x1371], cx
shr eax, 0x10
mov byte [esp + 0x1373], al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1374], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1604], eax
mov eax, dword [0x6074b4]
mov byte [esp + 0x1608], 0
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 8
push 0x940
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a14fa
mov esi, eax
push 0x940
lea eax, [esp + 0xcd4]
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 4], esi
mov dword [eax + 8], 0x5ae764
jmp 0x49e8b3
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov esi, 2
jmp 0x49fda0
mov bl, 1
push 0x5ae628
push esi
push dword [esp + 0x14]
call fcn.00425270
add esp, 0xc
jmp 0x4a153c
lea eax, [esp + 0xcd8]
push 0x144
lea ecx, [esp + 0x1a24]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [0x6074b4]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x14c
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a150b
mov edi, eax
push 0x14c
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
mov ecx, edi
add esp, 0xc
mov dword [esp + 0xc], 0x5ac758
mov dword [esp + 0x30], 0
movzx ebx, byte [esp + 0x2061]
jmp 0x49fdd0
lea eax, [esp + 0x2062]
lea ecx, [esp + 0x1a20]
push ecx
push eax
lea eax, [esp + 0x640]
push eax
call fcn.0040d430
add esp, 0xc
cmp dword [esp + 0x638], 0
je 0x4a1275
mov eax, dword [esp + 0x648]
movzx ecx, word [esp + 0x64e]
mov esi, dword [esp + 0x640]
mov edi, dword [esp + 0x644]
movzx ebx, byte [esp + 0x64d]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x64c]
mov word [esp + 0x10], cx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1a20]
push eax
call fcn.00481340
add esp, 4
mov ecx, edi
jmp 0x49fdbe
lea eax, [esp + 0x2058]
mov ecx, 0x5ae52c
mov dword [esp + 0xcd0], 0x5ae524
mov dword [esp + 0x2a70], eax
mov dword [esp + 0x2a74], 0x47c510
lea esi, [esp + 0xcd0]
lea edi, [esp + 0x2a70]
mov dword [esi + 4], 1
mov dword [esi + 0x10], 0
mov dword [esi + 8], edi
mov dword [esi + 0xc], 1
push ecx
push esi
call fcn.00425150
add esp, 8
jmp 0x4a153c
mov eax, dword [esp + 0x64c]
mov edi, dword [esp + 0x644]
mov ebx, dword [esp + 0x648]
mov esi, dword [esp + 0x654]
lea ecx, [esp + 0xcf4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x650]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x658]
push 0x140
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x63c]
mov eax, dword [esp + 0x30]
movsd qword [esp + 0xcd8], xmm0
mov dword [esp + 0xce0], edi
mov dword [esp + 0xce4], ebx
mov dword [esp + 0xce8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xcf0], esi
mov dword [esp + 0xcec], eax
mov eax, dword [0x6074b4]
mov dword [esp + 0xcd0], 1
mov dword [esp + 0xcd4], 1
movzx eax, byte [eax]
push 4
push 0x164
call fcn.00401610
add esp, 8
test eax, eax
je 0x4a152d
mov edi, eax
push 0x164
lea eax, [esp + 0xcd4]
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0xc], 0x5ac860
mov al, 2
movzx ebx, byte [esp + 0x2061]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1a20]
push eax
call fcn.00481340
add esp, 4
mov ecx, edi
jmp 0x4a1193
push 0x6a0
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
mov ecx, 0x5aca20
jmp 0x4a13cf
mov ecx, 0x5aca34
jmp 0x4a13cb
mov ecx, 0x5aca10
jmp 0x4a13cf
mov ecx, 0x5acd1c
push ecx
push esi
push eax
call fcn.00428790
add esp, 0xc
jmp 0x4a153c
push 0x6a0
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
mov ecx, 0x5aca44
mov edi, dword [esp + 0x30]
push ecx
push eax
push edi
call fcn.00425270
add esp, 0xc
jmp 0x4a153c
lea eax, [esp + 0x220]
mov dword [esp + 0xcd0], 0x5ae588
mov ecx, 0x5ae590
jmp 0x4a122e
mov ecx, 0x5aca00
jmp 0x4a13cf
mov ecx, 0x5acd0c
jmp 0x4a13a2
push 0x6b0
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
mov bl, 1
call fcn.0041a880
jmp 0x4a153c
push dword [esp + 0x10]
push ebx
mov bl, 1
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
mov dword [esp + 0x638], 0x5aca84
mov dword [esp + 0x63c], 1
mov dword [esp + 0x640], 0x5ac720
mov dword [esp + 0x644], 0
mov dword [esp + 0x648], 0
lea eax, [esp + 0x2a70]
lea edx, [esp + 0x220]
xor ecx, ecx
push 0x5aca8c
lea esi, [esp + 0x63c]
push esi
push eax
call fcn.004839b0
add esp, 0xc
jmp 0x4a153c
push esi
push dword [esp + 0x10]
call fcn.0041bb60
add esp, 8
jmp 0x4a153c
push 0x14c
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
call fcn.0041a880
jmp 0x4a153c
push esi
push dword [esp + 0x14]
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x150
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x164
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x940
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x14c
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x150
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x4a153c
push 0x164
push 4
call fcn.0041a8c0
add esp, 8
ud2