Function at 0x46c81f
Capabilities:
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
sub esp, 0x200
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
cmp eax, 0xffff
jbe 0x46c84e
and dword [ecx + 0x14], 0
mov dword [ecx], 2
and dword [ecx + 4], 0
jmp 0x46ee29
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x30], edx
mov ecx, ebx
call fcn.0049757e
mov edi, eax
mov dword [esp + 0x1b0], edx
push ebx
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov ecx, 0xffff
mov dword [esp + 0x128], ebx
and eax, ecx
and ecx, dword [ebp + 0x14]
imul ecx, eax
lea eax, [ecx*4]
mov dword [esp + 0x1ac], ecx
cmp eax, ebx
mov dword [esp + 0xf8], eax
jne 0x46f381
and ebx, 0xfffffffc
mov dword [esp + 0x174], 0
push 0xfffffffffffffffc
pop eax
mov edx, ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x17c], ebx
add edi, 4
neg edx
test edx, edx
je 0x46c90c
cmp byte [edi - 1], 0
je 0x46c8e7
mov byte [edi - 1], 0xff
add edi, 4
add edx, 4
jmp 0x46c8d1
movzx esi, byte [edi - 2]
movzx ebx, word [edi - 4]
mov ecx, eax
sub ecx, edx
mov dl, 1
mov dword [esp + 0x174], edx
mov edx, ecx
shl esi, 0x10
or ebx, esi
mov dword [esp + 0x1a8], ebx
jmp 0x46c8cc
lea esi, [esp + 0x1e8]
mov ecx, esi
call fcn.004bd6a1
mov edx, dword [esi]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 4]
lea ebx, [esp + 0x190]
mov dword [ebx - 0x10], 0xa38ef0
and dword [ebx - 0xc], 0
and dword [ebx - 8], 0
and dword [ebx - 4], 0
mov dword [ebx], edx
mov edx, dword [esp + 0xc]
mov dword [ebx + 4], esi
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x17c], ecx
je 0x46ccbb
mov eax, dword [edx + ecx]
mov edx, dword [esp + 0x194]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x190]
lea ebx, [esp + 0xf8]
mov dword [esp + 0xf8], eax
push ebx
push dword [esp + 0x1a0]
push dword [esp + 0x1a0]
call fcn.004bd059
add esp, 0xc
mov edi, edx
mov edx, dword [esp + 0x184]
mov ecx, dword [esp + 0x180]
mov esi, eax
lea eax, [esp + 0x128]
mov dword [esp + 0x128], ebx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x180]
mov dword [esp + 0x4c], eax
push 0x4bd978
lea eax, [esp + 0x4c]
push eax
push edi
mov dword [esp + 0x9c], esi
push esi
call fcn.004a4151
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov esi, dword [esp + 0x180]
test eax, eax
sete al
test esi, esi
sete bl
or bl, al
cmp bl, 1
jne 0x46cab6
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x184]
mov ecx, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0xd0], eax
push edi
push dword [esp + 0x94]
call fcn.004c21d1
pop ecx
pop edx
mov bh, byte [esi + eax]
cmp dword [esp + 0x188], 0
mov edi, eax
jne 0x46ca7a
mov esi, dword [esp + 0x90]
mov al, bh
and al, 1
je 0x46ca81
lea ecx, [esp + 0x180]
lea edx, [esp + 0x190]
call fcn.0063f227
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
push dword [esp + 0x28]
push esi
call fcn.004c21d1
pop ecx
pop edx
mov edi, eax
jmp 0x46ca81
mov esi, dword [esp + 0x90]
mov edx, edi
movzx eax, bh
lea ecx, [esp + 0x180]
push dword [esp + 0x28]
push esi
push eax
call fcn.0047cb53
add esp, 0xc
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0xd0]
shl edi, 2
neg edi
mov dword [eax + edi - 4], ecx
mov eax, dword [esp + 0x18c]
cmp eax, 0x101
setae cl
and bl, cl
mov ecx, dword [esp + 0x10]
add ecx, 4
cmp bl, 1
jne 0x46c952
push 8
pop ecx
mov edx, 0x2000
call fcn.0043ca7f
test eax, eax
je 0x46f3c7
mov edi, eax
push 4
pop ecx
mov edx, 0x1000
call fcn.0043ca7f
test eax, eax
je 0x46f3d1
mov esi, eax
mov dword [esp + 0x10], edi
push 4
pop ecx
mov edx, 0x400
push 1
call fcn.0043ca88
pop ecx
test eax, eax
je 0x46f3db
mov edi, eax
push 0x10
pop ebx
call fcn.0043d94d
mov dword [esp + 0x90], eax
call fcn.0043d94d
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x54]
xorpd xmm0, xmm0
mov dword [edx - 0xc], ecx
mov ecx, 0x100
mov dword [edx - 8], ecx
mov dword [edx], esi
mov esi, dword [esp + 0x90]
mov dword [edx + 4], ecx
mov dword [edx + 0xc], edi
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
lea edx, [esp + 0x6c]
lea edi, [esp + 0x78]
mov dword [edx], esi
mov dword [edx + 4], ecx
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 0xc], 1
mov dword [edi + 0x10], ecx
and dword [edi - 0x28], 0
and dword [edi - 0x1c], 0
and dword [edi - 4], 0
and dword [edi + 8], 0
xor esi, esi
cmp esi, 0x100
je 0x46cd35
movss xmm3, dword [esp + 0x88]
movapd xmm1, xmm0
movapd xmm2, xmm0
mulsd xmm0, qword [0x646460]
cmp esi, 0x10
addsd xmm1, qword [0x646120]
mulsd xmm2, qword [0x646458]
orpd xmm3, xmmword [0x6463f0]
subsd xmm3, qword [0x6461f8]
jb 0x46cbe3
movsd xmm0, qword [0x646468]
mov edx, dword [esp + 0x50]
movsd qword [esp + 0x10], xmm1
cmp edx, dword [esp + 0x4c]
jne 0x46cc30
lea ecx, [esp + 0x48]
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x28], xmm2
movapd xmmword [esp + 0xd0], xmm3
call fcn.0055fa28
movapd xmm3, xmmword [esp + 0xd0]
movsd xmm2, qword [esp + 0x28]
movsd xmm0, qword [esp + 0x90]
mov edx, dword [esp + 0x50]
divsd xmm2, xmm3
mov eax, dword [esp + 0x48]
mov ecx, edx
inc edx
shl ecx, 5
movsd qword [eax + ecx], xmm2
movsd qword [eax + ecx + 8], xmm2
movsd qword [eax + ecx + 0x10], xmm2
movsd qword [eax + ecx + 0x18], xmm0
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x5c]
cmp edx, dword [esp + 0x58]
jne 0x46cc70
lea ecx, [esp + 0x54]
call fcn.004ffd6a
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ecx, edx
movsd xmm0, qword [0x646470]
inc edx
shl ecx, 4
and dword [eax + ecx], 0
and dword [eax + ecx + 4], 0
and dword [eax + ecx + 8], 0
mov dword [eax + ecx + 0xc], 0xff
mov ecx, edi
mov dword [esp + 0x5c], edx
call fcn.0043dac5
xorps xmm0, xmm0
lea ecx, [esp + 0x6c]
call fcn.0043dac5
movsd xmm0, qword [esp + 0x10]
inc esi
jmp 0x46cb91
mov ebx, dword [esp + 0x180]
mov esi, dword [esp + 0x184]
movdqa xmm0, xmmword [ebx]
lea ecx, [ebx + esi + 1]
lea edx, [ebx + 0x10]
test esi, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x90], edx
pmovmskb ecx, xmm0
not ecx
mov dword [esp + 0x28], ecx
je 0x46d9ef
lea edx, [esi + 1]
cmp edx, 0x3fffffff
ja 0x46cd1a
shl edx, 2
add edx, 0xf
jb 0x46cd1a
and edx, 0xfffffff0
add esi, 0x11
add esi, edx
jb 0x46cd1a
cmp esi, 0x7ffffff1
jb 0x46ed6d
mov dword [esp + 0xd0], 0
mov edi, dword [esp + 0xd0]
mov ecx, ebx
sub ecx, edx
jmp 0x46d9f1
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov eax, edi
cdq
push 8
pop ecx
idiv ecx
mov dword [esp + 0x20], eax
lea eax, [esi - 1]
cdq
push 3
pop ecx
idiv ecx
cmp esi, 1
jb 0x46f2c8
mov ecx, eax
mov eax, dword [esp + 0x20]
xor edx, edx
shl eax, 6
mov dword [esp + 0x170], eax
mov eax, dword [ebp + 0xc]
shr eax, 2
mov dword [esp + 0xcc], eax
div esi
mov edx, edi
shr edx, 1
cmp edi, 0xca
push 0x64
pop esi
cmovae esi, edx
mov dword [esp + 0xc8], eax
cmp esi, eax
jbe 0x46cda2
xor eax, eax
inc eax
jmp 0x46cda6
xor edx, edx
div esi
mov edx, dword [esp + 0x20]
add ecx, 0x1e
mov dword [esp + 0x124], eax
mov dword [esp + 0x1a4], ecx
mov ecx, 0
and edx, 0x3ffffff
cmp dword [esp + 0x170], 0x80
cmovl edx, ecx
lea ecx, [0x7fdc88]
mov dword [esp + 0x20], edx
test ebx, ebx
je 0x46ce04
mov esi, dword [ecx + 4]
test esi, esi
je 0x46f2b4
mov eax, dword [esp + 0xcc]
xor edx, edx
add ecx, 4
add ebx, 0xfffffffc
div esi
test edx, edx
je 0x46cdde
jmp 0x46ce06
xor ecx, ecx
test ecx, ecx
lea eax, [0x7fdc98]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 0x400
cmovne eax, ecx
xor edi, edi
mov eax, dword [eax]
add eax, dword [esp + 0xcc]
mov dword [esp + 0x1b4], eax
xor eax, eax
cmp eax, ebx
je 0x46d43f
lea ecx, [edi*4]
cmp ecx, esi
ja 0x46f327
sub esi, ecx
mov dword [esp + 0x24], eax
cmp esi, 3
jbe 0x46f338
mov edx, dword [esp + 0xc]
xor ebx, ebx
xor esi, esi
dec esi
mov dword [esp + 0x1c], esi
movzx eax, byte [edx + ecx]
cvtsi2sd xmm0, eax
movzx eax, byte [edx + ecx + 1]
movsd qword [esp + 0x40], xmm0
cvtsi2sd xmm0, eax
movzx eax, byte [edx + ecx + 2]
movzx ecx, byte [edx + ecx + 3]
movsd qword [esp + 0xa8], xmm0
cvtsi2sd xmm0, eax
movsd qword [esp + 0x38], xmm0
cvtsi2sd xmm0, ecx
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x646478]
movaps xmm1, xmm0
cmp dword [esp + 0x28], ebx
je 0x46d0ad
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
push 0x7fdbec
push ebx
movsd qword [esp + 0x18], xmm1
movsd qword [esp + 0xd8], xmm0
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [eax]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
addsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x90], xmm0
push 0x7fdbfc
push ebx
call fcn.0043da8d
movsd xmm3, qword [esp + 0xd8]
add esp, 8
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 0x10]
movapd xmm2, xmmword [0x646020]
subsd xmm1, qword [esp + 0x38]
subsd xmm0, qword [esp + 0x40]
andpd xmm1, xmm2
andpd xmm0, xmm2
addsd xmm0, xmm1
ucomisd xmm3, xmm0
ja 0x46cf6c
movsd xmm1, qword [esp + 0x90]
ucomisd xmm1, xmm0
ja 0x46cf6c
movsd xmm0, qword [esp + 0x10]
movapd xmmword [esp + 0xd0], xmm3
jmp 0x46cfec
movsd xmm1, qword [eax + 8]
movsd xmm4, qword [eax + 0x18]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
subsd xmm1, qword [esp + 0xa8]
subsd xmm4, qword [esp + 0xc0]
andpd xmm1, xmm2
andpd xmm4, xmm2
addsd xmm0, xmm1
addsd xmm4, xmm0
movapd xmm0, xmm4
ucomisd xmm3, xmm4
movapd xmmword [esp + 0x90], xmm4
minsd xmm0, xmm3
cmova esi, ebx
movapd xmmword [esp + 0xd0], xmm0
push 0x7fdc0c
push ebx
call fcn.0043da73
movapd xmm0, xmmword [esp + 0x98]
add esp, 8
subsd xmm0, qword [eax]
movsd xmm1, qword [esp + 0x10]
ucomisd xmm1, xmm0
jbe 0x46cff7
mov dword [esp + 0x1c], ebx
movapd xmmword [esp + 0x90], xmm0
jmp 0x46d000
movapd xmmword [esp + 0x90], xmm1
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
push 0x7fdc1c
push ebx
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [eax]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mulsd xmm0, qword [0x646480]
movsd qword [esp + 0x10], xmm0
push 0x7fdc2c
push ebx
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [esp + 0x10]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
push 0x7fdc3c
push ebx
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [eax]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
movsd qword [esp + 0x10], xmm0
push 0x7fdc4c
push ebx
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [esp + 0x10]
movapd xmm1, xmmword [esp + 0x90]
inc ebx
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movapd xmm0, xmmword [esp + 0xd0]
jmp 0x46ceba
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
push 0x7fdc5c
push esi
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [eax]
movsd xmm1, qword [0x646488]
addsd xmm0, xmm1
movsd qword [eax], xmm0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
push 0x7fdc6c
push esi
call fcn.0043da73
pop ecx
pop edx
movsd xmm0, qword [eax]
cvtsi2sd xmm1, dword [esp + 0x34]
addsd xmm0, qword [0x646490]
mulsd xmm1, qword [0x646488]
movsd qword [eax], xmm0
movsd qword [esp + 0x10], xmm1
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0x7fdbbc
mov esi, dword [esp + 0x20]
push esi
call fcn.0043da8d
pop ecx
pop edx
movsd xmm0, qword [eax + 0x10]
movsd xmm3, qword [esp + 0x10]
cmp dword [esp + 0x20], 0
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x38]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x10], xmm0
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movapd xmm2, xmm1
subsd xmm2, qword [esp + 0xa8]
mulsd xmm2, xmm3
subsd xmm1, xmm2
movsd qword [eax + 8], xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x40]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 0x18]
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0xc0]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x18], xmm0
jle 0x46d390
mov ecx, dword [esp + 0x20]
mov eax, esi
xor ebx, ebx
mov edx, esi
sub eax, ecx
add esi, ecx
cvtsi2sd xmm0, ecx
test eax, eax
mulsd xmm0, xmm0
cmovle eax, ebx
movsd qword [esp + 0xd0], xmm0
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x28]
cmp esi, eax
cmovge esi, eax
mov dword [esp + 0x18], esi
lea esi, [edx + 1]
dec edx
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
cmp esi, ecx
jl 0x46d207
cmp edx, eax
jle 0x46d390
movsd xmm1, qword [esp + 0xd0]
cvtsi2sd xmm0, ebx
cmp esi, ecx
mulsd xmm0, xmm0
movapd xmm3, xmm1
subsd xmm3, xmm0
mulsd xmm3, qword [esp + 0x10]
divsd xmm3, xmm1
jge 0x46d2de
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0x7fdbcc
push esi
movsd qword [esp + 0x98], xmm3
call fcn.0043da8d
movsd xmm3, qword [esp + 0x98]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add esp, 8
movsd xmm0, qword [eax + 0x10]
inc esi
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x38]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x10], xmm0
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movapd xmm2, xmm1
subsd xmm2, qword [esp + 0xa8]
mulsd xmm2, xmm3
subsd xmm1, xmm2
movsd qword [eax + 8], xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x40]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 0x18]
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0xc0]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x18], xmm0
mov eax, dword [esp + 0xb0]
inc ebx
cmp edx, eax
jle 0x46d1fb
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
push 0x7fdbdc
push dword [esp + 0x20]
movsd qword [esp + 0x98], xmm3
call fcn.0043da8d
mov edx, dword [esp + 0x24]
add esp, 8
movsd xmm0, qword [eax + 0x10]
movsd xmm3, qword [esp + 0x90]
dec edx
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x38]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x10], xmm0
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movapd xmm2, xmm1
subsd xmm2, qword [esp + 0xa8]
mulsd xmm2, xmm3
subsd xmm1, xmm2
movsd qword [eax + 8], xmm1
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0x40]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [eax + 0x18]
movapd xmm1, xmm0
subsd xmm1, qword [esp + 0xc0]
mulsd xmm1, xmm3
subsd xmm0, xmm1
movsd qword [eax + 0x18], xmm0
jmp 0x46d1ec
add edi, dword [esp + 0x1b4]
mov eax, dword [esp + 0xcc]
sub edi, eax
cmp edi, eax
jae 0x46d39e
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [ebp + 0xc]
inc ecx
mov eax, ecx
div dword [esp + 0x124]
mov ebx, dword [esp + 0xc8]
mov eax, ecx
test edx, edx
jne 0x46ce3b
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1a4]
test eax, eax
je 0x46f2d7
cmp eax, 0xffffffff
jne 0x46d3ee
cmp dword [esp + 0x34], 0x80000000
je 0x46f2e1
mov ecx, dword [esp + 0x34]
mov eax, ecx
cdq
idiv dword [esp + 0x1a4]
sub ecx, eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x34], ecx
cdq
push 0xffffffffffffffe2
pop ecx
idiv ecx
mov ecx, dword [esp + 0x170]
mov edx, 0
add ecx, eax
mov eax, ecx
mov dword [esp + 0x170], ecx
shr eax, 6
cmp ecx, 0x80
cmovl eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
jmp 0x46ce3b
xor ebx, ebx
mov esi, 0xff
cmp dword [esp + 0x28], ebx
je 0x46d652
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
lea eax, [ebx + 1]
mov dword [esp + 0x10], eax
push 0x7fdd30
push ebx
call fcn.0043da8d
pop ecx
pop edx
movsd xmm0, qword [eax + 0x10]
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
pop eax
pop ecx
fstp qword [esp + 0x1b8]
movsd xmm1, qword [0x6463d0]
movsd xmm2, qword [0x6463d8]
mov eax, 0
movsd xmm0, qword [esp + 0x1b8]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
ucomisd xmm0, xmm0
maxsd xmm0, xmm1
minsd xmm0, xmm2
cvttsd2si edi, xmm0
cmovp edi, eax
cmp edi, esi
cmovge edi, esi
test edi, edi
cmovle edi, eax
push 0x7fdd40
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov dword [eax + 8], edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0x7fdd50
push ebx
call fcn.0043da8d
pop ecx
pop edx
movsd xmm0, qword [eax + 8]
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
pop eax
pop ecx
fstp qword [esp + 0x1c0]
mov eax, 0
movsd xmm0, qword [esp + 0x1c0]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si edi, xmm0
cmovp edi, eax
cmp edi, esi
cmovge edi, esi
test edi, edi
cmovle edi, eax
push 0x7fdd60
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0x7fdd70
push ebx
call fcn.0043da8d
pop ecx
pop edx
movsd xmm0, qword [eax]
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
pop eax
pop ecx
fstp qword [esp + 0x1c8]
mov eax, 0
movsd xmm0, qword [esp + 0x1c8]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si edi, xmm0
cmovp edi, eax
cmp edi, esi
cmovge edi, esi
test edi, edi
cmovle edi, eax
push 0x7fdd80
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov dword [eax], edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0x7fdd90
push ebx
call fcn.0043da8d
pop ecx
pop edx
movsd xmm0, qword [eax + 0x18]
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_round
pop eax
pop ecx
fstp qword [esp + 0x1d0]
mov eax, 0
movsd xmm0, qword [esp + 0x1d0]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si edi, xmm0
cmovp edi, eax
cmp edi, esi
cmovge edi, esi
test edi, edi
cmovle edi, eax
push 0x7fdda0
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov ebx, dword [esp + 0x10]
mov dword [eax + 0xc], edi
jmp 0x46d446
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x20], 0
lea eax, [esi + 1]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x90], eax
mov edi, dword [esp + 0x28]
cmp esi, edi
je 0x46d7fa
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
push 0x7fddb0
push esi
call fcn.0043daa9
pop ecx
pop edx
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x10], esi
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], edi
cmp ebx, dword [esp + 0x28]
jae 0x46d6e5
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
push 0x7fddc0
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov eax, dword [eax + 4]
cmp eax, edi
cmovb esi, ebx
cmovb edi, eax
inc ebx
jmp 0x46d6bc
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
push 0x7fddd0
push esi
call fcn.0043daa9
pop ecx
pop edx
mov ecx, dword [esp + 0x10]
cmp ecx, esi
je 0x46d791
mov edx, dword [eax + 8]
mov ebx, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xb0], edx
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
push 0x7fdde0
push ebx
call fcn.0043daa9
pop ecx
pop edx
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
push 0x7fddf0
push esi
call fcn.0043daa9
pop ecx
pop edx
mov ecx, dword [esp + 0xd0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov ecx, ebx
mov ebx, dword [esp + 0xc0]
inc dword [esp + 0x90]
lea esi, [ecx + 1]
cmp edi, ebx
je 0x46d66f
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
push 0x7fde00
push ebx
call fcn.00484348
pop ecx
pop edx
mov ecx, dword [esp + 0x20]
shr ecx, 1
inc ebx
mov dword [eax], ecx
cmp ebx, edi
jae 0x46d7eb
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
push 0x7fde10
push ebx
call fcn.00484348
pop ecx
pop edx
mov ecx, dword [esp + 0x10]
jmp 0x46d7c9
mov eax, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x20], eax
jmp 0x46d65e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
lea esi, [eax + edi - 1]
dec edi
push 0x7fde20
push ebx
call fcn.00484348
pop ecx
pop edx
shr esi, 1
mov dword [eax], esi
inc ebx
cmp ebx, 0xff
ja 0x46d83e
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
push 0x7fde30
push ebx
call fcn.00484348
pop ecx
pop edx
mov dword [eax], edi
jmp 0x46d81c
push 0x11
pop ecx
lea edi, [esp + 0x128]
lea esi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xf8]
mov edi, dword [esp + 0x17c]
mov ecx, esi
mov edx, edi
push 4
call fcn.004bd470
pop eax
cmp dword [esi + 4], 0
je 0x46f370
mov ecx, dword [esp + 0x100]
call fcn.005ce69d
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
and dword [esp + 0xf0], 0
lea esi, [esp + 0x48]
mov edx, edi
mov ecx, esi
push 4
call fcn.004bd470
pop eax
cmp dword [esi + 4], 0
mov ebx, dword [esp + 0xc]
je 0x46f3ba
mov edx, dword [esp + 0x50]
lea esi, [esp + 0xe8]
mov ecx, esi
call fcn.004b8ebb
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0xcc]
shl esi, 2
mov dword [esp + 0x90], eax
mov dword [esp + 0x10], ecx
neg esi
test esi, esi
je 0x46d92b
movzx eax, byte [ebx + 1]
movzx edi, byte [ebx + 3]
movzx edx, byte [ebx + 2]
lea ecx, [esp + 0x128]
mov dword [esp + 0x28], eax
mov eax, esi
movzx esi, byte [ebx]
push edi
push esi
mov esi, eax
push dword [esp + 0x30]
call fcn.0043daf7
add esp, 0xc
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x10]
add esi, 4
add ebx, 4
mov byte [ecx + edx], al
inc edx
mov dword [esp + 0x10], edx
jmp 0x46d8e0
mov eax, dword [esp + 0xec]
imul ecx, dword [esp + 0x168], 3
mov dword [esp + 0xb0], eax
call fcn.005ce69d
mov edi, dword [esp + 0x13c]
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x134]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
shl edi, 4
mov dword [esp + 0x40], esi
test edi, edi
je 0x46d99d
mov edx, dword [esi]
lea ebx, [esp + 0x48]
lea eax, [esi + 0x10]
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.004bda12
mov edx, dword [esi + 4]
mov ecx, ebx
call fcn.004bda12
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.004bda12
mov esi, dword [esp + 0x28]
add edi, 0xfffffff0
jmp 0x46d968
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
cmp byte [esp + 0x174], 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
je 0x46dc16
mov esi, dword [esp + 0x1a8]
lea ecx, [esp + 0x128]
mov eax, esi
mov edx, esi
shr eax, 8
shr edx, 0x10
push 0
push esi
push eax
call fcn.0043daf7
add esp, 0xc
jmp 0x46dc16
xor edi, edi
lea edx, [esp + 0x128]
mov dword [edx], ecx
mov ecx, dword [esp + 0x90]
mov dword [edx + 4], edi
mov dword [edx + 8], esi
mov dword [edx + 0xc], ebx
lea esi, [esp + 0x48]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x28]
mov word [edx + 0x18], cx
mov ecx, esi
mov dword [edx + 0x1c], eax
call fcn.004bd4a2
cmp byte [esi], 0
je 0x46dbf8
push 4
pop eax
mov ecx, dword [esp + 0x144]
xor edx, edx
dec edx
inc ecx
cmove ecx, edx
cmp ecx, 5
cmovb ecx, eax
xor ebx, ebx
cmp ecx, 0x20000000
setb al
jae 0x46f3c0
lea esi, [ecx*4]
mov dword [esp + 0x20], ecx
test esi, esi
js 0x46f3c0
mov edi, dword [esp + 0x49]
mov bl, al
mov edx, esi
mov ecx, ebx
call fcn.0043bd7b
test eax, eax
je 0x46f424
mov dword [eax], edi
lea esi, [esp + 0x48]
xor ebx, ebx
mov edi, eax
mov dword [esp + 0xcc], 0
movsd xmm1, qword [esp + 0x138]
movq xmm0, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x128]
inc ebx
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0x130]
movq qword [esi + 0x18], xmm0
movsd qword [esi], xmm2
movsd qword [esi + 8], xmm1
lea ecx, [esp + 0xb4]
mov edx, esi
call fcn.004bd4a2
cmp byte [esp + 0xb4], 0
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], ebx
je 0x46dbcc
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0xb5]
cmp ebx, eax
jne 0x46dbb6
mov ebx, dword [esp + 0x64]
mov ecx, 0xffffffff
inc ebx
cmove ebx, ecx
xor ecx, ecx
add ebx, eax
jb 0x46dbab
add eax, eax
cmp eax, ebx
cmova ebx, eax
cmp ebx, 5
jae 0x46db2f
push 4
pop ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp ebx, 0x20000000
lea esi, [esp + 0xf8]
setb dl
mov dword [esp + 0xf8], ecx
lea eax, [eax*4]
lea ecx, [esp + 0xe8]
mov dword [esp + 0x100], eax
lea eax, [ebx*4]
mov dword [esp + 0xfc], 1
push esi
push eax
call fcn.004b8f42
pop eax
pop ecx
cmp dword [esp + 0xe8], 0
mov ecx, dword [esp + 0xec]
je 0x46db9a
mov ebx, dword [esp + 0xf0]
jmp 0x46dba7
mov dword [esp + 0x24], ecx
mov ecx, 0x80000001
mov dword [esp + 0x20], ebx
lea esi, [esp + 0x48]
mov edx, ebx
call fcn.00427d90
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
dec dword [esp + 0xcc]
mov dword [eax + ebx*4], edi
mov edi, eax
inc ebx
jmp 0x46dad2
lea ecx, [esp + 0x48]
call fcn.0042e265
cmp ebx, 0x15
jae 0x46dd0a
cmp ebx, 2
jb 0x46e237
mov ecx, edi
mov edx, ebx
push 1
call fcn.004bd85f
pop eax
jmp 0x46e237
lea ecx, [esp + 0x128]
call fcn.0042e265
xor edi, edi
mov dword [esp + 0x20], 0
xor ebx, ebx
inc edi
jmp 0x46e237
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xd0], eax
and word [ecx + 0x18], 0
mov word [ecx + 0x22], 1
and word [ecx + 0x25], 0
and dword [ecx], 0
and dword [ecx + 0xc], 0
and dword [ecx + 0x1e], 0
and dword [ecx + 0x1a], 0
mov dword [ecx + 0x10], str.dest_is_out_of_bounds
and dword [ecx + 0x14], 0
call fcn.004bd99a
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x46dc73
mov ecx, dword [esp + 0x128]
shl eax, 5
push 8
pop edx
push eax
call fcn.00402161
pop eax
mov eax, dword [esp + 0x138]
test eax, eax
je 0x46dc8f
shl eax, 4
push 4
pop edx
mov ecx, dword [esp + 0x40]
push eax
call fcn.00402161
pop eax
cmp dword [esp + 0x144], 0
je 0x46dca8
mov ecx, dword [esp + 0x140]
push 4
pop edx
call fcn.00404240
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x150]
call fcn.0051df9b
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
call fcn.0051df9b
mov eax, dword [esp + 0x184]
test eax, eax
je 0x46e7a0
mov edx, dword [esp + 0x180]
lea edi, [esp + 0x48]
mov ecx, edi
push 0x10
push 4
push eax
call fcn.0047cd43
add esp, 0xc
mov ecx, dword [edi]
mov edx, dword [edi + 4]
push dword [edi + 8]
call fcn.00402161
pop eax
jmp 0x46e7a0
mov al, byte [0xa71040]
xor edx, edx
cmp ebx, 0x40000000
lea ecx, [ebx + ebx]
setb dl
and ecx, 0x7ffffffc
call fcn.004041e0
test eax, eax
mov dword [esp + 0x90], eax
je 0x46f441
push 0x10
pop ecx
call fcn.00485f87
test eax, eax
je 0x46f453
mov esi, eax
lea eax, [edi + 4]
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x124], eax
push 0x10
pop eax
mov ebx, dword [esp + 0x38]
sub ebx, ecx
jbe 0x46e216
cmp ebx, 2
mov dword [esp + 0x18], esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0xc0], eax
jae 0x46dd8a
mov edx, dword [esp + 0x38]
jmp 0x46dee3
mov eax, dword [esp + 0x24]
mov edi, ecx
mov dword [esp + 0x1c], ebx
lea edx, [eax + ecx*4]
lea ecx, [edx + 4]
call fcn.004bd91d
test al, al
mov byte [esp + 0x10], al
je 0x46dddc
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xcc]
lea edx, [eax + edi*4]
add edi, ecx
push 2
pop ebx
lea eax, [edi + ebx]
cmp eax, 1
je 0x46de11
lea esi, [edx + 4]
mov ecx, esi
call fcn.004bd91d
test al, al
je 0x46de17
mov edx, esi
mov esi, dword [esp + 0x18]
inc ebx
jmp 0x46ddbd
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xcc]
lea edx, [eax + edi*4]
add edi, ecx
push 2
pop ebx
lea eax, [edi + ebx]
cmp eax, 1
je 0x46de11
lea esi, [edx + 4]
mov ecx, esi
call fcn.004bd91d
test al, al
jne 0x46de17
mov edx, esi
mov esi, dword [esp + 0x18]
inc ebx
jmp 0x46ddf2
mov ebx, dword [esp + 0x1c]
jmp 0x46de1b
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x1c], ebx
cmp byte [esp + 0x10], 0
mov eax, dword [esp + 0x24]
lea edx, [ebx + ecx]
mov ebx, dword [esp + 0x38]
je 0x46dec6
mov dword [esp + 0x34], edx
push 0xa0ef48
push ebx
push eax
call fcn.004a660c
add esp, 0xc
mov edi, edx
lea esi, [eax + edx*4]
shr edi, 1
lea ecx, [edi*4]
mov edx, edi
sub esi, ecx
xor ecx, ecx
push 0xa144a0
push edi
push eax
call fcn.004a660c
add esp, 0xc
xor ecx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xd0], eax
mov edx, edi
push 0xa144b0
push edi
push esi
call fcn.004a660c
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x28], edx
dec edi
cmp edi, 0xffffffff
je 0x46decc
cmp dword [esp + 0x10], ecx
je 0x46f250
cmp edi, dword [esp + 0x28]
jae 0x46f25d
mov esi, dword [esp + 0xd0]
mov ebx, dword [eax + edi*4]
mov edx, dword [esi + ecx*4]
mov dword [esi + ecx*4], ebx
inc ecx
mov dword [eax + edi*4], edx
jmp 0x46de96
mov edi, dword [esp + 0x40]
jmp 0x46ded8
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x1c]
cmp edx, dword [esp + 0xa8]
jb 0x46f34c
cmp edx, dword [esp + 0x38]
ja 0x46f34c
jae 0x46df4e
cmp ebx, 0xa
jae 0x46df4e
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x38]
lea edx, [ecx + 0xa]
cmp edx, eax
cmovae edx, eax
cmp ebx, 2
mov eax, 1
mov edi, edx
cmovb ebx, eax
push 0xa0f014
push dword [esp + 0x3c]
push dword [esp + 0x2c]
call fcn.004a660c
add esp, 0xc
mov ecx, eax
push ebx
call fcn.004bd85f
mov edx, edi
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0x44]
add esp, 4
cmp edi, eax
mov dword [esp + 0x34], edx
jne 0x46df99
lea ecx, [eax + eax]
mov esi, eax
mov dword [esp + 0xc8], ecx
call fcn.00485f87
test eax, eax
je 0x46f35e
mov edi, eax
shl esi, 3
push esi
mov esi, dword [esp + 0x1c]
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, esi
push 4
pop edx
call fcn.00404240
mov esi, edi
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
jmp 0x46dfa0
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0xa8]
mov eax, edx
mov dword [esp + 0x18], esi
sub eax, ecx
mov dword [esi + edi*8], eax
mov dword [esi + edi*8 + 4], ecx
inc edi
cmp edi, 2
jb 0x46e1f2
mov eax, dword [esi + edi*8 - 8]
mov ecx, dword [esi + edi*8 - 4]
add ecx, eax
cmp dword [esp + 0x38], ecx
je 0x46e009
mov edx, dword [esi + edi*8 - 0x10]
cmp edx, eax
jbe 0x46e009
cmp edi, 3
jb 0x46e1f2
mov ecx, dword [esi + edi*8 - 0x18]
lea esi, [edx + eax]
lea ebx, [edi - 3]
cmp ecx, esi
jbe 0x46e017
cmp edi, 4
jb 0x46e202
mov esi, dword [esp + 0x18]
add edx, ecx
cmp dword [esi + edi*8 - 0x20], edx
jbe 0x46e01b
jmp 0x46e1f2
cmp edi, 3
jb 0x46e01f
mov ecx, dword [esi + edi*8 - 0x18]
lea ebx, [edi - 3]
jmp 0x46e01b
mov esi, dword [esp + 0x18]
cmp ecx, eax
jb 0x46e022
lea ebx, [edi - 2]
mov ecx, esi
mov edx, edi
push 0xa0ef58
push ebx
call fcn.004bd666
pop ecx
pop edx
mov ecx, dword [eax]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x40], edi
mov edx, edi
mov dword [esp + 0xd0], ecx
mov ecx, esi
mov esi, dword [eax + 4]
lea eax, [ebx + 1]
push 0xa0ef68
mov dword [esp + 0xc4], eax
push eax
call fcn.004bd666
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], esi
mov dword [esp + 0xb0], ecx
add edx, ecx
mov ecx, esi
push 0xa0ef78
push dword [esp + 0x3c]
push dword [esp + 0x2c]
call fcn.004a660c
add esp, 0xc
mov ecx, dword [esp + 0xd0]
mov ebx, edx
mov esi, edx
mov dword [esp + 0x10], eax
sub ebx, ecx
lea edi, [eax + ecx*4]
cmp ebx, ecx
jae 0x46e114
lea eax, [ebx*4]
push eax
push edi
push dword [esp + 0x98]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x90]
lea esi, [ecx + esi*4 - 4]
lea ebx, [eax + ebx*4]
cmp edi, ecx
jbe 0x46e177
cmp ebx, dword [esp + 0x90]
jbe 0x46e177
lea ecx, [ebx - 4]
lea edx, [edi - 4]
call fcn.004bd91d
movzx ecx, al
lea edx, [ecx*4]
lea ebx, [ebx + ecx*4 - 4]
mov ecx, dword [esp + 0x10]
sub edi, edx
test al, al
mov eax, ebx
cmovne eax, edi
mov eax, dword [eax]
mov dword [esi], eax
add esi, 0xfffffffc
jmp 0x46e0d0
lea edx, [eax + esi*4]
lea ecx, [ecx*4]
mov dword [esp + 0x28], edx
push ecx
push eax
mov esi, dword [esp + 0x98]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xd0]
lea ebx, [esi + eax*4]
cmp esi, ebx
jae 0x46e180
cmp edi, dword [esp + 0x28]
jae 0x46e180
mov ecx, edi
mov edx, esi
call fcn.004bd91d
test al, al
mov ecx, esi
mov edx, dword [esp + 0x10]
cmovne ecx, edi
mov ecx, dword [ecx]
mov dword [edx], ecx
movzx ecx, al
xor al, 1
add edx, 4
movzx eax, al
mov dword [esp + 0x10], edx
lea edi, [edi + ecx*4]
lea esi, [esi + eax*4]
jmp 0x46e13e
mov esi, dword [esp + 0x90]
jmp 0x46e184
mov edi, dword [esp + 0x10]
sub ebx, esi
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0xa8]
cmp edx, dword [esp + 0xc0]
jbe 0x46f2f0
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add eax, dword [esp + 0xd0]
cmp edx, edi
mov dword [esi + edi*8 + 8], eax
mov dword [esi + edi*8 + 0xc], ecx
jbe 0x46f2fb
lea eax, [esi + edi*8]
lea ecx, [esi + edi*8 + 8]
not edi
add edi, edx
shl edi, 3
push edi
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edi, dword [esp + 0x4c]
add esp, 0xc
dec edi
jmp 0x46dfb7
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x34]
jmp 0x46dd5a
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
jmp 0x46dd5a
push 4
pop edx
mov ecx, esi
call fcn.00404240
mov ecx, dword [esp + 0x90]
xor edx, edx
inc edx
call fcn.00404240
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
lea edx, [esp + 0x128]
lea esi, [esp + 0xf8]
lea eax, [edi + ebx*4]
mov dword [esp + 0x24], edi
and dword [edx], 0
and dword [edx + 0x10], 0
mov ecx, esi
mov dword [edx + 0x20], edi
mov dword [esp + 0x10], eax
mov dword [edx + 0x24], eax
call fcn.004bd415
xor eax, eax
cmp dword [esi + 4], eax
je 0x46f370
mov dword [esp + 0x38], ebx
lea ebx, [esp + 0xf8]
mov ecx, dword [ebx + 8]
call fcn.005ce69d
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
and dword [esp + 0xbc], 0
push 0xa
pop ecx
lea edx, [esp + 0x48]
lea esi, [esp + 0x128]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.004bd415
cmp dword [ebx + 4], 0
je 0x46f3e5
mov edx, dword [esp + 0x100]
lea esi, [esp + 0xb4]
lea edi, [esp + 0xbc]
mov ecx, esi
call fcn.004b8ebb
mov edx, dword [esp + 0x58]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
cmp dword [esp + 0x48], 0
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0xf0], eax
je 0x46e32f
mov eax, dword [esp + 0x54]
movq xmm0, qword [esp + 0x4c]
lea edx, [esp + 0xf8]
lea ecx, [esp + 0xe8]
mov dword [edx + 8], eax
movq qword [edx], xmm0
call fcn.004bd3e7
test ebx, ebx
je 0x46e379
lea edi, [esp + 0xf8]
cmp ebx, esi
je 0x46e379
movzx ecx, word [ebx]
mov al, byte [ebx + 2]
and dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 3
mov edx, edi
mov word [esp + 0x100], cx
lea ecx, [esp + 0xe8]
mov byte [esp + 0x102], al
call fcn.004bd3e7
add ebx, 4
jmp 0x46e33a
cmp dword [esp + 0x90], 0
je 0x46e3a8
lea eax, [esp + 0x5c]
lea edx, [esp + 0xf8]
mov ecx, dword [eax + 8]
movq xmm0, qword [eax]
mov dword [edx + 8], ecx
lea ecx, [esp + 0xe8]
movq qword [edx], xmm0
call fcn.004bd3e7
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
lea esi, [esp + 0x1d8]
mov dword [eax], ecx
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x18], ecx
mov ecx, esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0x1c], edx
call fcn.004bd6a1
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi]
mov esi, dword [esi + 4]
lea edi, [esp + 0x138]
mov dword [edi - 0x10], 0xa38ef0
and dword [edi - 0xc], 0
and dword [edi - 8], 0
and dword [edi - 4], 0
mov dword [edi + 4], esi
mov dword [edi], edx
mov dword [edi + 0xc], ecx
mov dword [edi + 8], eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x48]
mov dword [edx], esi
mov dword [edx + 4], eax
mov dword [edx + 8], esi
mov dword [edx + 0xc], ecx
and dword [edx + 0x10], 0
and dword [edx + 0x14], 0
and dword [edx + 0x18], 0
and word [edx + 0x1c], 0
lea ecx, [esp + 0xf8]
mov byte [edx + 0x1e], 0xff
call fcn.004bd503
mov edx, dword [esp + 0xf8]
lea ecx, [esp + 0x128]
push edi
call fcn.004bd53a
pop eax
mov ebx, dword [ebp + 0xc]
shl dword [esp + 0x38], 2
xor eax, eax
xor ecx, ecx
xor edx, edx
cmp dword [esp + 0x38], eax
je 0x46e5e1
test dl, dl
jne 0x46e5e1
mov dword [esp + 0x90], ecx
inc cl
mov dword [esp + 0x10], eax
mov eax, dword [esi + eax]
lea esi, [esp + 0xf8]
sete dl
mov dword [esp + 0x28], edx
movzx edx, cl
mov ecx, 0xff
cmove edx, ecx
mov ecx, dword [esp + 0x138]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x13c]
mov dword [esp + 0xf8], eax
push esi
push dword [esp + 0x148]
push dword [esp + 0x148]
call fcn.004bd059
add esp, 0xc
mov ebx, edx
mov edi, eax
lea ecx, [esp + 0x128]
mov edx, eax
push esi
push ebx
call fcn.004bd2d6
pop ecx
pop edx
test eax, eax
je 0x46e507
dec eax
jmp 0x46e5ba
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x40], eax
mov dword [esp + 0xa8], ecx
push ebx
push edi
call fcn.004c21d1
pop ecx
pop edx
mov edx, dword [esp + 0xa8]
mov esi, eax
cmp dword [esp + 0x130], 0
mov cl, byte [edx + esi]
jne 0x46e58c
mov eax, ecx
and al, 1
je 0x46e58c
xor edx, edx
mov byte [esp + 0xa8], cl
lea ecx, [esp + 0x128]
lea eax, [esp + 0x138]
inc edx
push eax
call fcn.004bd53a
pop eax
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0x12c]
push ebx
push edi
call fcn.004c21d1
mov cl, byte [esp + 0xb0]
add esp, 8
mov esi, eax
movzx eax, cl
lea ecx, [esp + 0x128]
mov edx, esi
push ebx
push edi
push eax
call fcn.0047cb53
add esp, 0xc
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x40]
neg esi
lea ecx, [esi + esi*4]
lea eax, [eax + ecx - 1]
mov dword [eax - 4], edx
mov ecx, dword [esp + 0x90]
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov byte [eax], cl
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd0]
add eax, 4
jmp 0x46e479
mov eax, dword [esp + 0x20]
test eax, eax
je 0x46e5f8
shl eax, 2
xor edx, edx
mov ecx, esi
inc edx
push eax
call fcn.00402161
pop eax
lea esi, [esp + 0x128]
mov edi, dword [esp + 0x17c]
movsd xmm1, qword [esi + 8]
movsd xmm0, qword [esi]
movsd xmm2, qword [esi + 0x10]
mov ecx, esi
mov edx, edi
movsd qword [esp + 0x100], xmm1
movsd xmm1, qword [esi + 0x18]
movsd qword [esp + 0xf8], xmm0
movsd qword [esp + 0x108], xmm2
movsd qword [esp + 0x110], xmm1
push 4
call fcn.004bd470
pop eax
cmp dword [esi + 4], 0
je 0x46f370
mov ecx, dword [esp + 0x130]
call fcn.005ce69d
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
and dword [esp + 0xf0], 0
lea esi, [esp + 0x48]
mov edx, edi
mov ecx, esi
push 4
call fcn.004bd470
pop eax
cmp dword [esi + 4], 0
je 0x46f3ba
mov edx, dword [esp + 0x50]
lea esi, [esp + 0xe8]
mov ecx, esi
call fcn.004b8ebb
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0xc]
and ebx, 0xfffffffc
lea edi, [esp + 0xf8]
neg ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x10], ecx
test ebx, ebx
je 0x46e6ec
lea esi, [edx + 4]
mov ecx, edi
push 4
call fcn.004bcfa4
pop ecx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x10]
add ebx, 4
mov byte [ecx + edx], al
inc edx
mov dword [esp + 0x10], edx
mov edx, esi
jmp 0x46e6c1
mov eax, dword [esp + 0xec]
cmp byte [esp + 0x174], 0
mov dword [esp + 0xb0], eax
je 0x46e722
mov eax, dword [esp + 0x1a8]
lea edx, [esp + 0x48]
lea ecx, [esp + 0xf8]
mov dword [edx], eax
push 4
call fcn.004bcfa4
pop ecx
jmp 0x46e722
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xfc]
mov esi, dword [esp + 0x30]
and word [esp + 0x60], 0
mov word [esp + 0x6a], 1
and word [esp + 0x6d], 0
and dword [esp + 0x48], 0
and dword [esp + 0x54], 0
and dword [esp + 0x66], 0
and dword [esp + 0x62], 0
mov dword [esp + 0x58], str.dest_is_out_of_bounds
and dword [esp + 0x5c], 0
test eax, eax
je 0x46e797
mov edx, dword [esp + 0xf8]
lea edi, [esp + 0x128]
mov ecx, edi
push 0x10
push 5
push eax
call fcn.0047cd43
add esp, 0xc
mov ecx, dword [edi]
mov edx, dword [edi + 4]
push dword [edi + 8]
call fcn.00402161
pop eax
lea ecx, [esp + 0x48]
call fcn.004bd99a
cmp byte [esi + 0x18], 2
lea edx, [esi + 4]
mov dword [esp + 0x28], edx
jne 0x46eaeb
mov eax, esi
mov esi, dword [esi + 0x1c]
and dword [eax + 0x1c], 0
test esi, esi
je 0x46f412
mov ecx, dword [esp + 0x1ac]
xor edx, edx
call fcn.00567657
mov ecx, dword [ebp + 0x10]
lea ebx, [esp + 0x134]
mov dword [ebx], esi
mov word [ebx + 4], cx
mov ecx, dword [ebp + 0x14]
mov word [ebx + 6], cx
mov dword [ebx - 0xc], eax
mov dword [ebx - 8], edx
and dword [ebx - 4], 0
mov ecx, ebx
mov edx, 0x80a990
mov byte [ebx + 8], 1
call fcn.00411f2d
lea esi, [esp + 0xb4]
push 6
push 0x9eb83e
push ebx
push esi
call fcn.0044ecb6
add esp, 0x10
cmp byte [esi], 4
je 0x46e82d
mov eax, dword [esp + 0xb4]
cmp al, 4
jne 0x46e8e6
lea edi, [esp + 0xb4]
mov edx, ebx
mov ecx, edi
push dword [esp + 0x138]
call fcn.00470982
pop eax
cmp byte [edi], 4
je 0x46e859
mov eax, dword [esp + 0xb4]
cmp al, 4
jne 0x46e8e6
movzx eax, word [esp + 0x13a]
lea edi, [esp + 0xb4]
mov edx, ebx
mov ecx, edi
push eax
call fcn.00470982
pop eax
cmp byte [edi], 4
je 0x46e883
mov eax, dword [esp + 0xb4]
cmp al, 4
jne 0x46e8e6
lea edi, [esp + 0xb4]
mov edx, ebx
mov ecx, edi
push 0x80
call fcn.004709fb
pop eax
cmp byte [edi], 4
je 0x46e8a9
mov eax, dword [esp + 0xb4]
cmp al, 4
jne 0x46e8e6
lea edi, [esp + 0xb4]
mov edx, ebx
mov ecx, edi
push 0
call fcn.004709fb
pop eax
cmp byte [edi], 4
je 0x46e8cc
mov eax, dword [esp + 0xb4]
cmp al, 4
jne 0x46e8e6
lea edi, [esp + 0x11c]
mov edx, ebx
mov ecx, edi
push 0
call fcn.004709fb
pop eax
cmp byte [edi], 4
jne 0x46e8fb
jmp 0x46e90b
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], ecx
mov ebx, dword [esp + 0x11c]
cmp bl, 4
jne 0x46e9bf
lea edi, [esp + 0xb4]
lea edx, [esp + 0x128]
mov ecx, edi
push 0
push str.dest_is_out_of_bounds
call fcn.00470c92
pop eax
pop ecx
cmp byte [edi], 5
je 0x46e93e
mov ebx, dword [esp + 0xb4]
cmp bl, 5
jne 0x46e9c8
lea ecx, [esp + 0x130]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
movzx edx, word [ecx + 0xd]
mov ebx, dword [ecx - 8]
mov esi, dword [ecx - 4]
mov dword [esp + 0xf0], eax
mov al, byte [ecx + 0xc]
mov cl, byte [ecx + 0xf]
movsd qword [esp + 0xe8], xmm0
mov word [esp + 0x16c], dx
cmp al, 2
mov byte [esp + 0x16e], cl
je 0x46e9db
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
movsd xmm0, qword [esp + 0xe8]
movzx edx, word [esp + 0x16c]
mov dword [esp + 0x5c], ecx
mov cl, byte [esp + 0x16e]
movsd qword [esp + 0x54], xmm0
mov byte [esp + 0x60], al
mov word [esp + 0x61], dx
mov byte [esp + 0x63], cl
jmp 0x46e9f9
mov esi, dword [esp + 0x120]
jmp 0x46e9cf
mov esi, dword [esp + 0xb8]
lea ecx, [esp + 0x128]
call fcn.004709b8
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push esi
call fcn.00470a16
pop eax
mov eax, dword [edi]
mov esi, dword [esp + 0xc]
cmp eax, 6
jne 0x46ec0d
mov esi, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x4c]
movsd xmm2, qword [esp + 0x54]
movzx eax, word [esi]
movsd qword [esp + 0x180], xmm1
movsd qword [esp + 0x188], xmm2
movsd qword [esp + 0x190], xmm0
cmp ax, 2
je 0x46ea85
movzx ecx, word [esi + 2]
mov word [esp + 0xfa], ax
lea eax, [esp + 0xf8]
lea edi, [esp + 0x128]
lea edx, [esp + 0x180]
mov word [esp + 0xfc], cx
mov byte [esp + 0xf8], 1
mov ecx, edi
push eax
call fcn.00470a7f
pop eax
lea ebx, [esp + 0x48]
mov edx, edi
mov ecx, ebx
call fcn.00470a65
mov eax, dword [ebx]
cmp eax, 6
jne 0x46ecd3
mov edi, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x190]
movsd xmm2, qword [esp + 0x180]
movsd xmm1, qword [esp + 0x188]
mov ecx, edi
movsd qword [esp + 0x58], xmm0
movsd qword [esp + 0x50], xmm1
movsd qword [esp + 0x48], xmm2
call fcn.0046f465
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [edi + 0x10], xmm0
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm2
cmp byte [esi + 0x18], 2
je 0x46f42f
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x174]
movzx eax, byte [esp + 0xd0]
xor ecx, ecx
lea edi, [esp + 0x48]
test bl, bl
cmove eax, ecx
or bl, 8
mov ecx, edi
mov byte [esp + 0xf9], bl
and word [esp + 0xfc], 0
mov byte [esp + 0xfa], al
lea eax, [esp + 0xf8]
mov byte [esp + 0xf8], 0
push eax
call fcn.00470a7f
pop eax
cmp byte [edi], 5
je 0x46eb48
mov eax, dword [esp + 0x48]
cmp al, 5
jne 0x46ec84
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x10]
mov edx, 0x80a9a0
test eax, eax
cmove ebx, eax
mov ecx, ebx
call fcn.00411f2d
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push 0x2c
call fcn.004709fb
pop eax
cmp byte [edi], 4
jne 0x46eb79
mov esi, dword [ebp + 0x10]
jmp 0x46eb88
mov eax, dword [esp + 0x48]
mov esi, dword [ebp + 0x10]
cmp al, 4
jne 0x46edab
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push 0
call fcn.00470982
pop eax
cmp byte [edi], 4
je 0x46eba9
mov eax, dword [esp + 0x48]
cmp al, 4
jne 0x46edab
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push 0
call fcn.00470982
pop eax
cmp byte [edi], 4
je 0x46ebca
mov eax, dword [esp + 0x48]
cmp al, 4
jne 0x46edab
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push esi
call fcn.00470982
pop eax
cmp byte [edi], 4
je 0x46ebea
mov eax, dword [esp + 0x48]
cmp al, 4
jne 0x46edab
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push dword [ebp + 0x14]
call fcn.00470982
pop eax
cmp byte [edi], 4
jne 0x46ec9f
mov esi, dword [esp + 0xc]
jmp 0x46ecaf
movsd xmm0, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x54]
movsd xmm3, qword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x178]
movsd xmm2, qword [esp + 0x64]
movsd qword [esp + 0x108], xmm0
movsd qword [esp + 0x100], xmm1
movsd qword [esp + 0xf8], xmm3
movsd qword [edx + 0x1c], xmm2
mov dword [edx + 0x24], ecx
movsd xmm1, qword [esp + 0x108]
movsd xmm2, qword [esp + 0xf8]
movsd qword [edx + 0x14], xmm1
movsd xmm1, qword [esp + 0x100]
movsd qword [edx + 4], xmm2
movsd qword [edx + 0xc], xmm1
mov dword [edx], eax
jmp 0x46edf8
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
jmp 0x46edc5
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xc]
cmp al, 4
jne 0x46ed37
cmp dword [esp + 0xc0], 0
je 0x46ecfd
mov eax, dword [esp + 0x18]
cmp eax, 0x302
jbe 0x46ed3d
mov word [esp + 0x128], 4
jmp 0x46edc5
mov edx, dword [esp + 0x178]
lea esi, [esp + 0x4c]
lea edi, [edx + 4]
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x180]
mov dword [edx], eax
call fcn.004709b8
mov esi, dword [esp + 0xc]
jmp 0x46edf8
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x18], 0
je 0x46f234
lea edi, [esp + 0x48]
mov edx, ebx
mov ecx, edi
push 0
call fcn.004709fb
pop eax
cmp byte [edi], 4
jne 0x46f270
mov esi, dword [esp + 0xc]
mov byte [esp + 0x128], 5
mov al, 5
jmp 0x46edc1
mov ecx, dword [esp + 0x4c]
jmp 0x46edb3
mov cx, 3
xor edx, edx
div cx
movzx ecx, ax
call fcn.004bdb08
or al, 0x80
lea edi, [esp + 0x48]
mov edx, ebx
movzx eax, al
mov ecx, edi
push eax
call fcn.004709fb
pop eax
cmp byte [edi], 4
jne 0x46ed7c
mov edx, dword [esp + 0x28]
jmp 0x46ed88
push 0x10
pop ecx
mov dword [esp + 0xd0], ecx
jmp 0x46cd25
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
cmp al, 4
jne 0x46edab
lea edi, [esp + 0x128]
mov ecx, edi
push dword [esp + 0x18]
push dword [esp + 0xc4]
call fcn.00470c92
pop eax
pop ecx
mov al, byte [edi]
mov esi, dword [esp + 0xc]
jmp 0x46edc1
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
cmp al, 5
je 0x46ee31
mov eax, dword [esp + 0x128]
cmp al, 5
je 0x46ee31
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x178]
lea edx, [esp + 0xf8]
call fcn.00470a65
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x1c]
call fcn.00404e53
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0xb0]
call fcn.00404e53
mov edx, dword [esp + 0x1b0]
mov ecx, esi
call fcn.004bd77e
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x30]
mov edx, 0
mov dword [esp + 0xd0], 0
and dword [eax + 0xc], 0
cmp dword [esp + 0x10], 0
jne 0x46f079
movzx ecx, dl
inc ecx
call fcn.004bdb08
mov ecx, eax
inc cl
test al, al
movzx ebx, cl
push 2
pop esi
mov ecx, dword [esp + 0x28]
cmove ebx, esi
mov edx, ebx
call fcn.004bda12
mov ecx, ebx
call fcn.00644300
xor edi, edi
mov dword [esp + 0xf8], esi
and dword [esp + 0xfc], 0
and dword [esp + 0x100], 0
mov dword [esp + 0x104], esi
and dword [esp + 0x108], 0
and dword [esp + 0x10c], 0
mov dword [esp + 0x110], esi
and dword [esp + 0x114], 0
and dword [esp + 0x118], 0
mov ecx, ebx
lea esi, [esp + 0xf8]
mov edx, ebx
mov dword [esp + 0x40], ebx
inc edi
shl edi, cl
mov ecx, esi
call fcn.00623f33
inc bl
lea eax, [esp + 0x4e]
push 0x24
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x2a
pop eax
push eax
lea eax, [esp + 0x4c]
push eax
lea esi, [esp + 0x130]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x40
pop ecx
call fcn.00621c11
and dword [eax + 4], 0
mov dword [eax], edi
mov byte [eax + 8], bl
mov esi, eax
mov byte [eax + 9], bl
add eax, 0xa
push 0x2a
pop ecx
push ecx
lea ecx, [esp + 0x12c]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x40]
mov word [esi + 0x34], di
mov word [esi + 0x36], di
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov byte [esi + 0x38], al
and word [esi + 0x39], 0
mov eax, dword [esp + 0x90]
mov ebx, dword [edi + 0xc]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x28]
mov edx, 0x1000
mov ecx, esi
call fcn.004b8ebb
mov eax, dword [edi + 0xc]
mov dword [esp + 0x38], ebx
add ebx, 0x1000
mov ecx, edi
mov edi, ebx
sub edi, eax
jbe 0x46efaf
mov ecx, esi
mov edx, edi
mov dword [esp + 0xa8], eax
call fcn.004b8ebb
mov eax, dword [esp + 0x30]
xor edx, edx
inc edx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
cmp edx, edi
jae 0x46efb3
mov byte [ecx + eax], 0
inc edx
inc eax
jmp 0x46efa3
mov eax, ecx
jmp 0x46efc7
cmp ebx, dword [esp + 0xa8]
je 0x46efc1
mov byte [ecx + eax], 0
inc eax
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0xc], ebx
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + 4]
push 0xa387b8
push ebx
call fcn.00596326
pop ecx
pop ecx
mov edi, dword [esp + 0x18]
mov ebx, eax
mov esi, edx
mov dword [esp + 0x38], edx
push edi
call fcn.00623735
pop ecx
push esi
push ebx
mov esi, dword [esp + 0x18]
push esi
mov ebx, dword [esp + 0x4c]
push ebx
push edi
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x5c]
push eax
call fcn.00623cbe
add esp, 0x18
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov edx, esi
mov dword [esp + 0xa8], eax
push 0xa387c8
push dword [esp + 0x4c]
call fcn.00472314
pop ecx
pop ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xa8]
mov ebx, dword [edi + 0xc]
mov esi, edi
mov ecx, edx
sub ecx, dword [esp + 0x38]
add ecx, ebx
cmp ebx, ecx
jb 0x46f04f
mov ebx, ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0xd0]
add ecx, edx
movzx edx, byte [esp + 0x50]
cmp edx, 2
je 0x46f09f
cmp edx, 3
mov edi, esi
je 0x46f0a1
mov dword [esp + 0x40], eax
mov dword [esp + 0xd0], ecx
jmp 0x46ef61
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
mov dl, byte [eax]
inc eax
dec ecx
test ecx, ecx
je 0x46ee54
movzx ebx, byte [eax]
cmp dl, bl
movzx edx, dl
cmovbe edx, ebx
inc eax
dec ecx
jmp 0x46f088
mov edi, esi
inc ecx
cmp dword [edi + 0xc], ecx
jb 0x46f0aa
mov dword [edi + 0xc], ecx
mov esi, dword [esp + 0x18]
push esi
call fcn.00623cb2
pop eax
push 8
pop edx
mov ecx, esi
push 0x40
call fcn.00402161
pop eax
mov eax, dword [edi + 0x10]
lea esi, [edi + 0x10]
mov edx, 0x80a980
test eax, eax
cmove esi, eax
mov ecx, esi
call fcn.00411f2d
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
xor edi, edi
mov ebx, ecx
lea edx, [eax + 1]
sub ebx, 1
cmovb ebx, edi
test ecx, ecx
mov ecx, 0x9e9a9c
mov edi, str.dest_is_out_of_bounds
cmovne ecx, eax
cmovne edi, edx
mov edx, esi
movzx eax, byte [ecx]
lea ecx, [esp + 0x48]
push eax
call fcn.004709fb
pop eax
lea eax, [esp + 0x48]
cmp byte [eax], 4
je 0x46f123
mov eax, dword [esp + 0x48]
cmp al, 4
jne 0x46f243
mov ecx, 0xff
mov eax, ebx
xor edx, edx
div ecx
lea eax, [esp + 0x48]
sub ebx, edx
mov dword [eax], edi
add edi, ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x48]
call fcn.004f6593
test eax, eax
je 0x46f1ac
mov edi, edx
mov ebx, eax
lea ecx, [esp + 0x128]
mov edx, esi
push 0xff
call fcn.004709fb
pop eax
cmp byte [esp + 0x128], 4
je 0x46f182
mov eax, dword [esp + 0x128]
cmp al, 4
jne 0x46f22b
push edi
push ebx
push esi
lea eax, [esp + 0x134]
push eax
call fcn.0044ecb6
add esp, 0x10
cmp byte [esp + 0x128], 4
je 0x46f144
mov eax, dword [esp + 0x128]
cmp al, 4
je 0x46f144
jmp 0x46f22b
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x46f202
mov eax, dword [esp + 0x50]
lea edi, [esp + 0x128]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x10], eax
push ebx
call fcn.004709fb
pop eax
cmp byte [edi], 4
je 0x46f1de
mov eax, dword [esp + 0x128]
cmp al, 4
jne 0x46f22b
push ebx
push dword [esp + 0x14]
push esi
push edi
call fcn.0044ecb6
add esp, 0x10
cmp byte [esp + 0x128], 4
je 0x46f202
mov eax, dword [esp + 0x128]
cmp al, 4
jne 0x46f22b
lea edi, [esp + 0x128]
mov edx, esi
mov ecx, edi
push 0
call fcn.004709fb
pop eax
cmp byte [edi], 4
jne 0x46f28f
mov esi, dword [esp + 0xc]
mov byte [esp + 0xf8], 5
jmp 0x46ede5
mov ecx, dword [esp + 0x12c]
jmp 0x46f247
mov word [esp + 0x128], 0x104
jmp 0x46edc5
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
jmp 0x46edd7
mov ecx, dword [esp + 0x10]
mov edx, ecx
push 0xa144c0
jmp 0x46f268
mov edx, dword [esp + 0x28]
mov ecx, edi
push 0xa144d0
call fcn.0063cc20
pop eax
ud2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x128], eax
jmp 0x46edc1
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov esi, dword [esp + 0xc]
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf8], eax
jmp 0x46ede5
push 0x39
pop edx
mov ecx, 0x7fdcb0
push 0x7fdd20
call fcn.0063cd70
jmp 0x46f26d
push 0x19
pop edx
mov ecx, 0x7fdba0
push 0x7fdc7c
jmp 0x46f2c1
push 0x19
pop edx
mov ecx, 0x7fdba0
jmp 0x46f2e9
push 0x1f
pop edx
mov ecx, str.attempt_to_divide_with_overflow
push 0x7fdcec
jmp 0x46f2c1
lea ecx, [esp + 0x48]
mov edx, 0xa0ef88
jmp 0x46f304
lea ecx, [esp + 0x48]
mov edx, 0xa0efc8
mov dword [ecx], 0xa0ecd0
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
call fcn.0063cbf0
ud2
mov edx, esi
push 0x7fdc9c
call fcn.0063cc90
jmp 0x46f26d
push 4
pop ecx
mov edx, esi
push 0x7fdc9c
call fcn.0063cd00
jmp 0x46f26d
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0xa0f004
jmp 0x46f2c1
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efb8
jmp 0x46f2c1
lea ecx, [esp + 0x48]
mov edx, 0x9b3598
mov dword [ecx], str.capacity_overflowcreating_a_new_thread_ID____would_exceed_the_maximum_number_of_thread_ID_bits_specified_in___
jmp 0x46f30a
lea eax, [esp + 0x48]
lea ecx, [esp + 0xf8]
lea edx, [esp + 0x128]
mov dword [eax], str.Too_much_or_too_little_pixel_data_for_the_given_width_and_height_to_create_a_GIF_Frame
mov dword [eax + 4], 1
mov dword [eax + 8], str.dest_is_out_of_bounds
and dword [eax + 0xc], 0
and dword [eax + 0x10], 0
push eax
call fcn.0063f1d8
jmp 0x46f26d
lea ecx, [esp + 0x48]
jmp 0x46f3ec
call fcn.0043aad0
ud2
push 8
pop ecx
mov edx, 0x2000
jmp 0x46f428
push 4
pop ecx
mov edx, 0x1000
jmp 0x46f428
push 4
pop ecx
mov edx, 0x400
jmp 0x46f428
lea ecx, [esp + 0xf8]
mov dword [ecx], str.capacity_overflowcreating_a_new_thread_ID____would_exceed_the_maximum_number_of_thread_ID_bits_specified_in___
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
mov edx, 0xa0ac88
jmp 0x46f320
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x80af2c
jmp 0x46f2c1
mov ecx, ebx
mov edx, esi
call fcn.0063c970
ud2
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x80af3c
jmp 0x46f2c1
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0ef98
jmp 0x46f2c1
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efa8
jmp 0x46f2c1