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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x1530
call fcn.0063aac0
mov eax, dword [edx + 4]
mov esi, ecx
call 0x6172b9
pop ecx
mov bl, 3
cmp eax, 0x36
jb 0x6174c2
mov edi, edx
mov edx, dword [edx]
mov dword [esp + 4], ecx
lea ecx, [esp + 0x520]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0x12
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x4e], dx
je 0x6174c2
lea ecx, [esp + 0x520]
add dword [ecx + 8], 0x10
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1e6], dx
je 0x6174c2
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1e4], dx
je 0x6174c2
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1e2], dx
je 0x6174c2
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1e0], dx
je 0x6174c2
lea ecx, [esp + 0x520]
add dword [ecx + 8], 6
call fcn.0060e3bf
test ax, ax
je 0x6174c2
cmp word [esp + 0x4e], 0x10
jb 0x6174c2
cmp word [esp + 0x4e], 0x4000
ja 0x6174c2
test dx, dx
je 0x6173b2
movzx eax, dx
cmp eax, 1
jne 0x6174c2
mov cl, 1
jmp 0x6173b4
xor ecx, ecx
mov eax, dword [edi + 0xc]
mov bl, 4
cmp eax, 0x24
jb 0x6174c2
mov edx, dword [edi + 8]
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x520]
mov dword [esp], edi
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov dword [ecx + 8], 4
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x48], dx
je 0x6174c2
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x6174c2
lea ecx, [esp + 0x520]
mov edi, edx
call fcn.0060e3bf
test ax, ax
mov word [esp + 0xc4], dx
je 0x6174c2
lea ecx, [esp + 0x520]
add dword [ecx + 8], 0x18
call fcn.0060e3bf
test ax, ax
je 0x6174c2
mov ecx, dword [esp]
mov dword [esp + 0x44], edx
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x6174c0
cmp edx, 0x10000
je 0x617478
cmp edx, 0x5000
jne 0x6174c0
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x6174c0
test dx, dx
je 0x6174c0
mov ebx, dword [esp]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x2b0], esi
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x6174d3
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x41c]
push dword [ebx + 0x64]
push eax
push dword [esp + 0x34]
call fcn.00612eaf
add esp, 0xc
jmp 0x6174db
mov bl, 5
mov byte [esi + 4], bl
mov dword [esi], 3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
and dword [esp + 0x41c], 0
mov eax, dword [ebx + 0xa4]
mov edx, dword [ebx + 0xa0]
lea esi, [esp + 0x474]
mov ecx, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
push eax
call fcn.0061b20c
pop eax
cmp word [esi], 0
je 0x61753b
mov eax, dword [ebx + 0xa8]
test eax, eax
je 0x61753b
movzx edx, word [esp + 0x47c]
lea ecx, [esp + 0x3e8]
push dword [ebx + 0xac]
push eax
mov ebx, dword [esp + 0x34]
push ebx
call fcn.00612eaf
add esp, 0xc
mov ecx, dword [esp + 0xc8]
jmp 0x61754e
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0x2c]
and dword [esp + 0x3e8], 0
mov dword [esp + 0xc0], edi
mov edi, dword [esp]
mov eax, dword [edi + 0x70]
push 2
pop edx
test eax, eax
mov dword [esp + 0x2b4], edx
je 0x617587
mov esi, dword [edi + 0x74]
cmp cl, 1
mov cl, 2
sbb cl, 0
mov edi, esi
shr edi, cl
cmp edi, 0xffff
jbe 0x617776
mov edi, dword [esp]
mov eax, dword [edi + 0x20]
xor ecx, ecx
test eax, eax
je 0x6175b2
mov edx, dword [edi + 0x18]
mov esi, dword [edi + 0x1c]
test edx, edx
mov dword [esp + 0x3b0], esi
mov dword [esp + 0x3b4], edx
cmove eax, edx
mov dword [esp + 0x2ac], eax
jmp 0x6175bd
mov dword [esp + 0x2ac], 0
mov eax, dword [edi + 0x30]
test eax, eax
je 0x6175e1
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
test ecx, ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], edx
cmove eax, ecx
mov ecx, eax
jmp 0x6175e1
mov eax, dword [edi + 0x50]
test eax, eax
je 0x617603
mov edx, dword [edi + 0x48]
mov esi, dword [edi + 0x4c]
test edx, edx
mov dword [esp + 0x3a0], esi
mov dword [esp + 0x3a4], edx
cmove eax, edx
jmp 0x617605
xor eax, eax
mov dword [esp + 0x3d0], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x3d4], ecx
mov dword [esp + 0x3c4], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x3c8], eax
mov eax, dword [edi + 0x54]
mov dword [esp + 0x3cc], eax
mov eax, dword [edi + 0x38]
test eax, eax
mov dword [esp + 0x5c], eax
je 0x617763
mov edx, dword [edi + 0x3c]
lea ecx, [esp + 0x2b8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
mov dword [esp + 0x20], edx
call fcn.0060eef4
test al, 1
je 0x61841e
lea ecx, [esp + 0x2b8]
mov ebx, edx
inc dword [ecx + 8]
call fcn.0060eef4
test al, 1
je 0x61841e
mov eax, dword [esp + 0x2c0]
inc eax
cmp bl, 1
mov dword [esp + 0x2c0], eax
jne 0x61841e
cmp dl, 4
jbe 0x6176a8
movzx ecx, dl
lea eax, [ecx + eax - 4]
mov dword [esp + 0x2c0], eax
lea ecx, [esp + 0x2b8]
call fcn.0060e3bf
mov edi, dword [esp]
test ax, ax
je 0x61841e
movzx ecx, dx
lea edx, [esp + 0x2b8]
call fcn.0060ef1c
test al, al
je 0x61841e
lea esi, [esp + 0x520]
lea edx, [esp + 0x2b8]
mov ecx, esi
call fcn.0060ef6f
mov al, byte [esi + 0x10]
test al, al
je 0x61841b
movsd xmm0, qword [esp + 0x520]
movsd xmm1, qword [esp + 0x528]
movzx edx, word [esp + 0x531]
lea ecx, [esp + 0x480]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov word [ecx + 0x11], dx
mov dl, byte [esp + 0x533]
mov byte [ecx + 0x13], dl
xor edx, edx
mov byte [ecx + 0x10], al
call fcn.0060ef96
test eax, eax
je 0x61841b
mov ecx, 0xfffffe80
test ecx, ecx
je 0x61781e
and dword [esp + ecx + 0x6a4], 0
and dword [esp + ecx + 0x6a0], 0
add ecx, 8
jmp 0x617746
push 5
pop ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x124], eax
jmp 0x61842c
mov ecx, ebx
mov edx, 0xffff
inc cx
cmovne edx, ecx
cmp dx, di
cmovae edx, edi
and dword [esp + 0x528], 0
cmp byte [esp + 0xc8], 0
mov dword [esp + 0x520], eax
mov dword [esp + 0x524], esi
je 0x6177cf
lea ecx, [esp + 0x520]
call fcn.0060e651
test eax, eax
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a0], eax
je 0x617584
xor eax, eax
inc eax
jmp 0x6177f3
lea ecx, [esp + 0x520]
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a0], eax
je 0x617584
xor eax, eax
mov edi, dword [esp]
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
mov dword [esp + 0x380], edx
mov dword [esp + 0x384], ecx
test ecx, ecx
push 2
pop ecx
cmovne ecx, eax
mov dword [esp + 0x2b4], ecx
jmp 0x617587
movss xmm1, dword [0x646430]
lea edi, [esp + 0x150]
xorps xmm0, xmm0
xor ebx, ebx
mov dword [esp + 0xa0], 0
mov dword [esp + 0x40], 0
mov dword [esp + 8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xa8], 0
mov dword [edi], eax
mov dword [edi + 4], edx
and dword [edi + 0x10], 0
and dword [edi + 0x14], 0
mov dword [edi + 8], esi
mov dword [edi + 0xc], 0x30
and word [edi + 0x18], 0
lea esi, [esp + 0x430]
movss dword [esp + 0x240], xmm0
movss dword [esp + 0x238], xmm0
movss dword [esp + 0x234], xmm0
movss dword [esp + 0x230], xmm0
movss dword [esp + 0x23c], xmm1
movss dword [esp + 0x22c], xmm1
mov ecx, edi
call fcn.0060efe2
cmp ax, 1
jne 0x617a37
movzx eax, dx
lea ecx, [eax - 0xf]
cmp ecx, 3
jbe 0x617923
cmp eax, 0x4b7
je 0x617944
cmp eax, 0x4ce
je 0x6179bb
cmp eax, 0x4d4
je 0x6179c6
cmp eax, 0x4d5
jne 0x6178cf
mov ecx, edi
call fcn.0060f0c0
mov dword [esp + 0xa4], eax
mov dword [esp + 0x34], edx
jmp 0x6178cf
mov eax, dword [ecx*4 + 0x61b1d0]
add eax, dword [esp + 4]
jmp eax
mov ecx, edi
call fcn.0060f186
test al, al
je 0x61841b
mov ecx, edi
call fcn.0060f3e3
cmp edx, 6
jne 0x6178cf
cvtsd2ss xmm1, qword [eax + 8]
cvtsd2ss xmm2, qword [eax + 0x10]
cvtsd2ss xmm0, qword [eax]
movss dword [esp + 0x230], xmm1
cvtsd2ss xmm1, qword [eax + 0x18]
movss dword [esp + 0x234], xmm2
cvtsd2ss xmm2, qword [eax + 0x20]
movss dword [esp + 0x22c], xmm0
movss dword [esp + 0x23c], xmm1
cvtsd2ss xmm1, qword [eax + 0x28]
movss dword [esp + 0x238], xmm2
movss dword [esp + 0x240], xmm1
jmp 0x6178cf
mov al, 1
mov dword [esp + 0x40], eax
jmp 0x6178cf
mov ecx, edi
call fcn.0060f0c0
mov dword [esp + 0x30], eax
mov dword [esp + 0x6c], edx
jmp 0x6178cf
cmp dword [esp + 8], 0
mov edi, dword [esp]
je 0x61841e
lea esi, [esp + 0x520]
lea edx, [esp + 0x2b8]
mov ecx, esi
call fcn.0060ef6f
mov al, byte [esi + 0x10]
test al, al
mov byte [esp + 0x76], al
je 0x61841b
lea esi, [esp + 0x520]
lea edx, [esp + 0x2b8]
mov cl, byte [esi + 0x13]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movzx eax, word [esi + 0x11]
mov byte [esp + 0x1ea], cl
mov ecx, esi
movsd qword [esp + 0x438], xmm1
movsd qword [esp + 0x430], xmm0
mov word [esp + 0x1e8], ax
call fcn.0060ef6f
mov al, byte [esi + 0x10]
test al, al
mov byte [esp + 0x75], al
je 0x61841b
mov ecx, dword [esp + 8]
movsd xmm0, qword [esp + 0x520]
movsd xmm1, qword [esp + 0x528]
movzx eax, word [esp + 0x531]
mov dl, byte [esp + 0x533]
cmp ecx, dword [esp + 0x20]
movsd qword [esp + 0x488], xmm1
movsd qword [esp + 0x480], xmm0
mov word [esp + 0x1f8], ax
mov byte [esp + 0x1fa], dl
ja 0x61841b
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 8]
lea edx, [esp + 0x150]
mov dword [edx], eax
mov dword [edx + 4], esi
lea esi, [esp + 0x520]
mov dword [edx + 8], ecx
mov ecx, esi
call fcn.0060ef6f
movzx ecx, byte [esi + 0x10]
test ecx, ecx
mov eax, ecx
mov dword [esp + 0x124], ecx
je 0x61841b
mov eax, dword [esp + 0x528]
movzx ecx, word [esp + 0x531]
movsd xmm0, qword [esp + 0x520]
xor edx, edx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x52c]
mov word [esp + 0x78], cx
mov cl, byte [esp + 0x533]
movsd qword [esp + 0x128], xmm0
mov byte [esp + 0x7a], cl
mov dword [esp + 0x2f4], eax
xor ecx, ecx
div dword [esp + 0x124]
sub eax, 1
cmovb eax, ecx
cmp eax, 0xffff
mov dword [esp + 0x3c], eax
ja 0x61841b
cmp word [esp + 0x3c], 0
je 0x61841b
cmp dword [esp + 0xa8], 0
je 0x617be0
cmp dword [esp + 0x60], 3
jae 0x617d21
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xb8], ecx
jmp 0x617beb
mov dword [esp + 0xb8], 0
cmp byte [esp + 0x40], 0
je 0x617dd9
cmp dword [esp + 0xa4], 0
je 0x61841b
cmp dword [esp + 0x30], 0
je 0x61841b
cmp dword [esp + 0xa8], 0
je 0x61841b
cmp dword [esp + 0x60], 3
jb 0x61841b
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x20]
ja 0x61841b
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x150]
mov dword [edx], eax
mov dword [edx + 4], esi
lea esi, [esp + 0x520]
mov dword [edx + 8], ecx
mov ecx, esi
call fcn.0060ef6f
mov al, byte [esi + 0x10]
test al, al
mov dword [esp + 0x68], eax
je 0x61841b
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x20]
ja 0x61841b
lea ecx, [esp + 0x520]
mov eax, dword [ecx]
movzx esi, byte [ecx + 0x13]
mov dword [esp + 0xb4], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xac], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xf8], eax
movzx eax, word [ecx + 0x11]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 8], eax
call fcn.0060eef4
test al, 1
je 0x61841b
cmp dl, 3
je 0x6182a9
movzx eax, dl
test eax, eax
jne 0x61841b
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x520]
call fcn.0060e648
test eax, eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x88], eax
je 0x61841b
mov dword [esp + 0x84], 0
jmp 0x6182e9
mov eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x20]
ja 0x61841b
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x3c], 2
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
mov dword [esp + 0x158], ecx
jb 0x61841b
lea ecx, [esp + 0x150]
call fcn.0060eef4
test al, 1
je 0x61841b
cmp dl, 2
je 0x6181c0
movzx eax, dl
cmp eax, 1
je 0x618235
test eax, eax
jne 0x61841b
mov ecx, dword [esp + 0x3c]
mov eax, 0x1fffe
add ecx, ecx
add ecx, eax
and ecx, eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x50], eax
add eax, ecx
jb 0x61841b
cmp eax, dword [esp + 0x154]
ja 0x61841b
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x150]
mov dword [esp + 0x50], eax
push 3
jmp 0x618357
cmp dword [esp + 0xbc], 0
mov dword [esp + 0x64], str.dest_is_out_of_bounds
mov dword [esp + 0xb4], 0
je 0x617e11
cmp dword [esp + 0x28], 0
je 0x617e1b
cmp dword [esp + 0x28], 1
jne 0x617fe7
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
jmp 0x617e26
mov dword [esp + 0x28], 0
jmp 0x617e26
mov eax, dword [esp + 0x28]
mov dword [esp + 0xb4], eax
test ebx, ebx
je 0x617f9f
mov eax, dword [esp + 0xa0]
sub eax, dword [esp + 0x1c]
jb 0x61841b
mov ecx, dword [esp + 0xa0]
cmp ecx, dword [esp + 0x20]
ja 0x61841b
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
lea esi, [esp + 0x520]
add edx, ecx
mov ecx, esi
push eax
call fcn.0060f403
pop eax
cmp dword [esi + 8], 0
xorps xmm0, xmm0
movss dword [esp + 0x1b8], xmm0
movss dword [esp + 0x1b4], xmm0
je 0x617e97
movss xmm0, dword [esp + 0x52c]
movss dword [esp + 0x1b4], xmm0
cmp dword [esp + 0x530], 0
je 0x617eb3
movss xmm0, dword [esp + 0x534]
movss dword [esp + 0x1b8], xmm0
cmp dword [esp + 0x520], 0
mov dword [esp + 0xf8], str.dest_is_out_of_bounds
mov dword [esp + 0x68], 0
mov byte [esp + 0x16], 1
je 0x61807a
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], str.dest_is_out_of_bounds
add eax, dword [esp + 0x524]
mov dword [esp + 0x1c], eax
jb 0x618090
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x1c]
jb 0x61841b
mov ebx, dword [esp + 0x1c]
lea edx, [esp + 0x4e0]
lea esi, [esp + 0x150]
mov ecx, esi
add ebx, dword [esp + 0x5c]
mov dword [edx], ebx
mov dword [edx + 4], eax
and dword [edx + 8], 0
call fcn.0060ef6f
mov al, byte [esi + 0x10]
test al, al
mov byte [esp + 0x16], al
je 0x61841b
mov esi, dword [esp + 0x154]
mov eax, dword [esp + 0x150]
mov edi, dword [esp + 0x158]
movzx edx, word [esp + 0x161]
mov cl, byte [esp + 0x163]
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0x15c]
mov dword [esp + 0xac], eax
mov dword [esp + 0xf8], edi
mov word [esp + 0x2e0], dx
mov byte [esp + 0x2e2], cl
mov dword [esp + 0x68], esi
jmp 0x618090
xorps xmm0, xmm0
mov dword [esp + 0xf8], str.dest_is_out_of_bounds
mov dword [esp + 0x68], 0
mov byte [esp + 0x16], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], str.dest_is_out_of_bounds
movss dword [esp + 0x1b8], xmm0
movss dword [esp + 0x1b4], xmm0
jmp 0x6180ae
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x20]
ja 0x61841b
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 8], eax
call fcn.0060eef4
test al, 1
mov byte [esp + 8], dl
je 0x61841b
lea ecx, [esp + 0x520]
call fcn.0060eef4
test al, 1
je 0x61841b
mov al, byte [esp + 8]
movzx edx, dl
and al, 0x7f
cmp al, 1
je 0x618364
movzx eax, al
test eax, eax
jne 0x61841b
lea ecx, [esp + 0x520]
call fcn.0060e648
test eax, eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], eax
je 0x61841b
push 2
jmp 0x6183ae
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], str.dest_is_out_of_bounds
mov al, byte [esp + 0x2e2]
movzx ecx, word [esp + 0x2e0]
mov byte [esp + 0x2d2], al
mov word [esp + 0x2d0], cx
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x2d2]
movzx edx, word [esp + 0x2d0]
shr ecx, 8
mov byte [esp + 0x146], al
mov word [esp + 0x144], dx
mov dword [esp + 0x1b0], ecx
movsd xmm0, qword [esp + 0x128]
mov cl, byte [esp + 0x7a]
movzx esi, word [esp + 0x78]
mov dl, byte [esp + 0x146]
movsd xmm1, qword [esp + 0x438]
movzx edi, word [esp + 0x144]
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x28]
movsd qword [esp + 0x3d8], xmm0
mov byte [esp + 0xd6], cl
movsd xmm0, qword [esp + 0x430]
mov cl, byte [esp + 0x1ea]
mov word [esp + 0xd4], si
mov byte [esp + 0xe2], dl
movsd qword [esp + 0x2d8], xmm1
movzx esi, word [esp + 0x1e8]
movsd xmm1, qword [esp + 0x488]
mov dl, byte [esp + 0x1fa]
mov word [esp + 0xe0], di
mov edi, dword [esp]
mov dword [esp + 0x3e0], eax
movsd qword [esp + 0x2d0], xmm0
mov byte [esp + 0xde], cl
movsd xmm0, qword [esp + 0x480]
movzx ecx, word [esp + 0x1f8]
mov word [esp + 0xdc], si
movsd qword [esp + 0x410], xmm1
mov byte [esp + 0xda], dl
movsd qword [esp + 0x408], xmm0
mov word [esp + 0xd8], cx
jmp 0x618430
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
lea esi, [esp + 0x520]
xor edi, edi
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esp + 8], ecx
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], edx
lea esi, [ecx - 1]
test si, si
je 0x61832c
add dword [esp + 0x528], 2
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x61841b
inc dx
je 0x61841b
cmp si, dx
jb 0x61841b
sub esi, edx
inc edi
jmp 0x6181f9
mov eax, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
lea esi, [esp + 0x520]
xor edi, edi
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esp + 8], ecx
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], edx
lea esi, [ecx - 1]
test si, si
je 0x6182ff
add dword [esp + 0x528], 2
lea ecx, [esp + 0x520]
call fcn.0060eef4
test al, 1
je 0x61841b
movzx eax, dl
cmp si, ax
jbe 0x61841b
movzx eax, ax
inc edi
not eax
add esi, eax
jmp 0x61826e
mov eax, dword [esp + 0x528]
mov ecx, dword [esp + 0x524]
sub ecx, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x64], ecx
jb 0x61841b
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x520]
mov dword [esp + 0x88], eax
xor eax, eax
inc eax
mov dword [esp + 0x84], eax
push 4
pop eax
shl esi, 0x10
mov dword [esp + 0x28], eax
add dword [esp + 0x1b0], esi
jmp 0x6180da
movzx eax, di
lea eax, [eax + eax*2]
mov dword [esp + 0x1ac], eax
add eax, dword [esp + 8]
jb 0x61841b
cmp eax, dword [esp + 0x24]
ja 0x61841b
mov eax, dword [esp + 8]
add dword [esp + 0x50], eax
push 4
jmp 0x618357
movzx eax, di
shl eax, 2
mov dword [esp + 0x1ac], eax
add eax, dword [esp + 8]
jb 0x61841b
cmp eax, dword [esp + 0x24]
ja 0x61841b
mov eax, dword [esp + 8]
add dword [esp + 0x50], eax
push 5
pop eax
mov dword [esp + 0xb8], eax
jmp 0x617beb
mov eax, dword [esp + 0x528]
add edx, edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], eax
add eax, edx
jb 0x61841b
cmp eax, dword [esp + 0x524]
ja 0x61841b
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x520]
mov dword [esp + 0x528], eax
mov dword [esp + 0x84], ecx
push 3
pop eax
cmp byte [esp + 8], 0
mov dword [esp + 0x28], eax
js 0x6183d2
mov dword [esp + 0xb4], 0
mov dword [esp + 0x64], str.dest_is_out_of_bounds
jmp 0x617e26
lea ecx, [esp + 0x520]
call fcn.0060eef4
test al, 1
je 0x61841b
movzx eax, dl
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x528]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x64], eax
add eax, ecx
jb 0x61841b
cmp eax, dword [esp + 0x524]
ja 0x61841b
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x520]
mov dword [esp + 0x64], eax
jmp 0x617e26
mov edi, dword [esp]
push 5
pop ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x68], eax
mov esi, dword [edi + 0x40]
mov dword [esp + 0x28], ebx
mov dword [esp + 8], 0
test esi, esi
je 0x6184a1
mov ebx, dword [edi + 0x44]
lea ecx, [esp + 0x520]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 2
call fcn.0060e3bf
test ax, ax
je 0x6184a1
movzx ecx, dx
mov edx, dword [esp + 0x528]
shl ecx, 3
mov dword [esp + 0x398], ecx
mov eax, edx
add eax, ecx
jb 0x6184a1
cmp eax, dword [esp + 0x524]
ja 0x6184a1
add edx, dword [esp + 0x520]
mov dword [esp + 0x37c], ebx
mov dword [esp + 8], esi
mov dword [esp + 0x378], edx
jmp 0x6184a1
mov eax, dword [esp + 0x42c]
movsd xmm0, qword [esp + 0x41c]
movsd xmm1, qword [esp + 0x424]
mov cl, 2
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x2f0], eax
mov eax, dword [edi + 0x68]
movsd qword [esp + 0x2e8], xmm1
movsd qword [esp + 0x2e0], xmm0
test eax, eax
je 0x618599
mov edx, dword [edi + 0x6c]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x618599
lea ecx, [esp + 0x520]
test dx, dx
je 0x61856b
add dword [ecx + 8], 2
call fcn.0060e40e
test eax, eax
mov dword [esp + 0x298], edx
je 0x618599
mov ecx, dword [esp + 0x528]
mov eax, dword [esp + 0x524]
sub eax, ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x294], eax
jb 0x618599
mov eax, dword [esp + 0x9c]
add eax, dword [esp + 0x520]
mov dword [esp + 0x9c], eax
mov al, 1
mov dword [esp + 0xa4], eax
jmp 0x618b50
call fcn.0060e3bf
test ax, ax
je 0x618599
mov ecx, dword [esp + 0x528]
mov eax, dword [esp + 0x524]
sub eax, ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x294], eax
jae 0x618b26
mov eax, dword [edi + 0x78]
mov dword [esp + 0xa8], 0
test eax, eax
je 0x618612
mov edx, dword [edi + 0x7c]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x618688
lea ecx, [esp + 0x520]
mov edi, edx
call fcn.0060e3bf
test ax, ax
je 0x618688
lea ecx, [esp + 0x520]
mov esi, edx
call fcn.0060e3bf
test ax, ax
je 0x618688
mov ebx, edx
cmp di, 1
je 0x61861c
movzx eax, di
test eax, eax
jne 0x618688
mov eax, dword [esp + 0x528]
jmp 0x618641
mov dword [esp + 0x40], 0
jmp 0x618693
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x618688
cmp dx, 0x3fff
ja 0x618688
shl edx, 2
movzx eax, dx
add eax, dword [esp + 0x528]
mov dword [esp + 0x40], eax
movzx eax, si
imul ecx, eax, 0xc
mov eax, dword [esp + 0x40]
mov dword [esp + 0x348], ecx
add eax, ecx
jb 0x618688
mov ecx, dword [esp + 0x524]
cmp eax, ecx
mov dword [esp + 0x27c], ecx
ja 0x618688
movzx ecx, bx
cmp eax, ecx
cmova ecx, eax
sub dword [esp + 0x27c], ecx
mov dword [esp + 0x274], ecx
jae 0x618d2b
mov dword [esp + 0x40], 0
mov edi, dword [esp]
mov esi, dword [edi + 0x80]
test esi, esi
je 0x6186d3
mov ebx, dword [edi + 0x84]
lea ecx, [esp + 0x520]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x6186d3
cmp dx, 6
jae 0x6186d3
movsx eax, dx
cmp dword [eax*4 + str.NV___d_t_t_v], ebx
jbe 0x6187d2
mov word [esp + 0x70], ax
mov ebx, dword [edi + 0x88]
mov byte [esp + 0xbc], 2
test ebx, ebx
je 0x6186f5
mov esi, dword [edi + 0x8c]
cmp esi, 0x20
jae 0x6186fe
mov eax, dword [esp + 0x2c]
jmp 0x618853
lea ecx, [esp + 0x520]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x6187d0
cmp edx, 0x10000
je 0x618747
cmp edx, 0x20000
je 0x618747
cmp edx, 0x25000
je 0x618747
cmp edx, 0x40000
je 0x618747
cmp edx, 0x30000
jne 0x6187d0
movzx eax, word [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
cmp edx, 0x20000
mov word [esp + 0xd0], ax
movzx eax, word [ebx + 0xa]
mov dword [esp + 0x30], ecx
mov word [esp + 0xd2], ax
jne 0x6187ea
lea ecx, [esp + 0x520]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0x20
call fcn.0060e3bf
test ax, ax
je 0x6187d0
lea ecx, [esp + 0x520]
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x288], edx
mov dword [esp + 0x284], eax
je 0x6187d0
mov ecx, dword [esp + 0x528]
mov eax, dword [esp + 0x524]
sub eax, ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x280], eax
jae 0x618d42
jmp 0x61884c
mov word [esp + 0x70], dx
mov dword [esp + 0x360], ebx
mov dword [esp + 0xa8], esi
jmp 0x6186d8
mov dword [esp + 0x280], 0
mov dword [esp + 0x114], str.dest_is_out_of_bounds
mov dword [esp + 0x284], str.dest_is_out_of_bounds
mov dword [esp + 0x288], 0
bswap edi
rol word [esp + 0xd0], 8
rol word [esp + 0xd2], 8
cmp dword [esp + 0x30], 0
cvtsi2ss xmm0, edi
mulss xmm0, dword [0x646900]
setne byte [esp + 0xbc]
movss dword [esp + 0x354], xmm0
mov eax, dword [esp + 0x2c]
mov edi, dword [esp]
mov edx, dword [edi + 0x90]
mov dword [esp + 0x60], 0
test edx, edx
je 0x6188d6
inc ax
je 0x6188d6
mov word [esp + 0x1de], ax
mov eax, dword [edi + 0x94]
lea ecx, [esp + 0x520]
mov esi, edx
mov dword [ecx], edx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
mov dword [esp + 0x388], eax
call fcn.0060e3bf
test ax, ax
je 0x6188d6
cmp dx, 1
jne 0x6188d6
lea ecx, [esp + 0x520]
add dword [ecx + 8], 2
call fcn.0060e40e
test eax, eax
je 0x6188d6
test edx, edx
je 0x6188d6
lea ecx, [esp + 0x520]
call fcn.00613255
test eax, eax
mov dword [esp + 0x350], edx
mov dword [esp + 0x34c], eax
jne 0x6188d8
xor esi, esi
mov eax, edi
mov edi, dword [edi + 0x98]
mov dword [esp + 0x3c0], esi
test edi, edi
je 0x618983
mov ebx, dword [eax + 0x9c]
lea ecx, [esp + 0x150]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], 2
call fcn.006126c1
cmp eax, 2
je 0x618983
test eax, eax
je 0x618983
mov eax, ebx
mov esi, edx
sub eax, edx
mov dword [esp + 0x374], eax
jb 0x618983
lea ecx, [esp + 0x520]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], esi
call fcn.0060e3bf
test ax, ax
je 0x618983
movzx eax, dx
imul ecx, eax, 0xc
mov eax, dword [esp + 0x528]
mov dword [esp + 0x340], ecx
mov dword [esp + 0x1c8], eax
add eax, ecx
jb 0x618983
cmp eax, dword [esp + 0x524]
ja 0x618983
mov eax, dword [esp + 0x1c8]
add edi, esi
mov dword [esp + 0x60], edi
add eax, dword [esp + 0x520]
mov dword [esp + 0x1c8], eax
jmp 0x618983
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x3fc]
push dword [esp + 0xc]
call fcn.0061b20c
pop eax
mov esi, dword [esp]
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x618a2d
mov edx, dword [esi + 0xb4]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x618a2d
cmp edx, 0x10000
jne 0x618a2d
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1dc], dx
je 0x618a2d
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x618a2d
mov eax, dword [esp + 0x528]
movzx edx, dx
shl edx, 2
mov dword [esp + 0x35c], edx
mov ecx, eax
add ecx, edx
jb 0x618a2d
cmp ecx, dword [esp + 0x524]
ja 0x618a2d
add eax, dword [esp + 0x520]
mov dword [esp + 0x1cc], eax
jmp 0x618a38
mov dword [esp + 0x1cc], 0
mov edi, dword [esi + 0xb8]
mov word [esp + 0xa0], 3
test edi, edi
je 0x618dd8
mov ebx, dword [esi + 0xbc]
lea ecx, [esp + 0x430]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x618dd8
lea eax, [edx - 0x10000]
mov esi, edx
cmp eax, 3
ja 0x618dd8
cmp eax, 1
je 0x618dd8
lea ecx, [esp + 0x430]
call fcn.0060e681
cmp ax, 2
mov word [esp + 0xc], dx
mov word [esp + 0x10], ax
je 0x618dd8
lea ecx, [esp + 0x430]
add dword [ecx + 8], 4
call fcn.0060e681
cmp ax, 2
mov word [esp + 0x6c], dx
mov word [esp + 0x30], ax
je 0x618dd8
cmp esi, 0x10000
mov dword [esp + 0x1c], 0
jbe 0x618b58
lea ecx, [esp + 0x430]
call fcn.0060e681
cmp ax, 2
mov word [esp + 0x38], dx
mov dword [esp + 0x34], eax
je 0x618dd8
cmp esi, 0x10002
jbe 0x618b60
lea ecx, [esp + 0x430]
call fcn.006126c1
cmp eax, 2
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
jne 0x618b60
jmp 0x618dd8
mov ecx, dword [esp + 0x9c]
movzx eax, dx
mov dword [esp + 0xa4], 0
mov dword [esp + 0x298], eax
add ecx, dword [esp + 0x520]
mov dword [esp + 0x9c], ecx
mov edi, dword [esp]
jmp 0x618599
mov dword [esp + 0x34], 0
cmp word [esp + 0x10], 1
mov word [esp + 0xce], 2
mov word [esp + 0x10], 2
jne 0x618bbf
movzx edx, word [esp + 0xc]
mov eax, ebx
mov word [esp + 0x10], 2
sub eax, edx
jb 0x618bbf
lea esi, [esp + 0x520]
add edx, edi
mov ecx, esi
push eax
call fcn.0061325e
pop eax
movzx eax, word [esi]
movsd xmm0, qword [esi + 2]
movzx ecx, word [esi + 0xa]
mov word [esp + 0x10], ax
movsd qword [esp + 0x4e0], xmm0
mov word [esp + 0x4e8], cx
cmp word [esp + 0x30], 1
jne 0x618c09
movzx edx, word [esp + 0x6c]
mov eax, ebx
sub eax, edx
jb 0x618c09
lea esi, [esp + 0x520]
add edx, edi
mov ecx, esi
push eax
call fcn.0061325e
pop eax
movzx eax, word [esi]
movsd xmm0, qword [esi + 2]
movzx ecx, word [esi + 0xa]
mov word [esp + 0xce], ax
movsd qword [esp + 0x128], xmm0
mov word [esp + 0x130], cx
cmp word [esp + 0x34], 1
mov dword [esp + 0x278], 0
jne 0x618c32
movzx esi, word [esp + 0x38]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x268], eax
jae 0x618d5c
mov dword [esp + 0x10c], 0
cmp dword [esp + 0x1c], 1
jne 0x618c9f
sub ebx, dword [esp + 0x24]
jb 0x618c9f
add edi, dword [esp + 0x24]
lea edx, [esp + 0x480]
lea esi, [esp + 0x520]
mov ecx, esi
mov dword [edx], edi
mov dword [edx + 4], ebx
and dword [edx + 8], 0
call fcn.00611ca8
mov eax, dword [esi]
movsd xmm0, qword [esi + 4]
movsd xmm2, qword [esi + 0xc]
movsd xmm1, qword [esi + 0x14]
mov dword [esp + 0x278], eax
movsd qword [esp + 0x150], xmm0
movsd qword [esp + 0x158], xmm2
movsd qword [esp + 0x160], xmm1
movzx eax, word [esp + 0x4e8]
movsd xmm1, qword [esp + 0x128]
movsd xmm0, qword [esp + 0x4e0]
movsd xmm2, qword [esp + 0x150]
mov word [esp + 0x200], ax
movsd qword [esp + 0x1e8], xmm1
movzx eax, word [esp + 0x130]
movsd xmm1, qword [esp + 0x158]
movsd qword [esp + 0x1f8], xmm0
movsd qword [esp + 0x2b8], xmm2
mov word [esp + 0x1f0], ax
movsd qword [esp + 0x2c0], xmm1
movsd xmm1, qword [esp + 0x160]
movzx eax, word [esp + 0x10]
movsd qword [esp + 0x2c8], xmm1
mov word [esp + 0xa0], ax
jmp 0x618dd8
mov eax, dword [esp + 0x520]
add dword [esp + 0x40], eax
add dword [esp + 0x274], eax
jmp 0x618690
mov eax, dword [esp + 0x114]
add eax, dword [esp + 0x520]
mov dword [esp + 0x114], eax
jmp 0x618816
mov eax, dword [esp + 0x268]
add esi, edi
lea ecx, [esp + 0x520]
mov dword [ecx], esi
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x618dd8
cmp dx, 1
mov dword [esp + 0x10c], 0
jne 0x619cbf
lea ecx, [esp + 0x520]
call fcn.0060e3bf
cmp ax, 1
jne 0x619cbf
lea ecx, [esp + 0x520]
call fcn.0060e651
test eax, eax
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x2f8], eax
je 0x619cbf
mov dword [esp + 0x10c], esi
jmp 0x618c3d
mov edi, dword [esp]
lea ecx, [esp + 0x4e0]
mov edx, dword [edi + 0xc0]
push dword [edi + 0xc4]
call fcn.0061b28b
pop eax
mov edx, dword [edi + 0xc8]
lea ecx, [esp + 0x430]
push dword [edi + 0xcc]
call fcn.0061b28b
pop eax
mov ebx, dword [edi + 0xd0]
push 3
pop eax
test ebx, ebx
mov dword [esp + 0x10], eax
je 0x618e7f
mov esi, dword [edi + 0xd4]
lea ecx, [esp + 0x144]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x618e7f
add dword [esp + 0x14c], 2
cmp dl, 1
jne 0x618e7f
lea ecx, [esp + 0x144]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], esi
call fcn.0060e681
test ax, 0xfffd
jne 0x6192d0
mov dword [esp + 0x28c], 0
jmp 0x6192f9
mov esi, dword [edi + 0xd8]
mov ax, 6
mov dword [esp + 0xc], eax
test esi, esi
je 0x618f8e
mov edi, dword [edi + 0xdc]
lea ecx, [esp + 0x128]
mov dword [ecx], esi
mov dword [ecx + 4], edi
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x618f89
test dx, dx
jne 0x618f89
lea ecx, [esp + 0x128]
mov edx, esi
add dword [ecx + 8], 2
push edi
call fcn.00613491
pop ecx
test eax, eax
mov dword [esp + 0x2a4], edx
mov dword [esp + 0x2a8], eax
je 0x618f89
lea ecx, [esp + 0x128]
mov edx, esi
push edi
call fcn.00613491
pop ecx
test eax, eax
mov dword [esp + 0x370], edx
mov dword [esp + 0x36c], eax
je 0x618f89
mov eax, dword [esp + 0x2a8]
lea ecx, [esp + 0x150]
mov dword [ecx], eax
mov eax, dword [esp + 0x2a4]
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x619cb2
mov ax, 6
cmp dx, 0xa
mov dword [esp + 0xc], eax
ja 0x619cba
mov ecx, dword [esp + 4]
movzx eax, dx
add ecx, dword [eax*4 + 0x61b1e0]
jmp ecx
mov edi, dword [esp]
jmp 0x618f8e
mov ebx, dword [edi + 0xe0]
xor esi, esi
test ebx, ebx
je 0x618ff9
mov eax, dword [edi + 0xe4]
lea ecx, [esp + 0x520]
mov dword [ecx], ebx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
mov dword [esp + 0x39c], eax
call fcn.0060e40e
test eax, eax
je 0x618ff9
cmp edx, 0x10000
jne 0x618ff9
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x618ff9
mov ecx, dword [esp + 0x528]
mov eax, dword [esp + 0x524]
add ecx, 6
cmp ecx, eax
mov dword [esp + 0x118], ecx
jbe 0x6191ef
xor ebx, ebx
mov eax, dword [edi + 0xe8]
test eax, eax
je 0x619044
mov edx, dword [edi + 0xec]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 4
call fcn.0060e40e
test eax, eax
je 0x619044
mov ecx, dword [esp + 0x524]
mov eax, dword [esp + 0x528]
sub ecx, eax
mov dword [esp + 0x394], ecx
jae 0x6191c7
mov eax, dword [edi + 0xf0]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x3bc], esi
mov dword [esp + 0x3b8], ebx
test eax, eax
je 0x6190aa
mov edx, dword [edi + 0xf4]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 4
call fcn.0060e40e
test eax, eax
je 0x6190aa
mov eax, dword [esp + 0x524]
mov ecx, dword [esp + 0x528]
mov dword [esp + 0x390], edx
sub eax, ecx
mov dword [esp + 0x38c], eax
jae 0x6191dc
mov dword [esp + 0x11c], 0
mov ebx, dword [edi + 0xf8]
test ebx, ebx
je 0x619149
mov esi, dword [edi + 0xfc]
lea ecx, [esp + 0x150]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x619139
cmp edx, 0x10000
jne 0x619139
lea ecx, [esp + 0x150]
call fcn.0060e3bf
test ax, ax
je 0x619139
test dx, dx
jne 0x619139
lea ecx, [esp + 0x150]
call fcn.0060e681
cmp ax, 2
mov word [esp + 4], dx
je 0x619139
lea ecx, [esp + 0x150]
mov edi, eax
call fcn.0060e681
cmp ax, 2
mov word [esp + 0x1c], dx
mov word [esp + 0x30], ax
jne 0x61961c
mov dword [esp + 0x120], eax
mov dword [esp + 0x34], eax
mov edi, dword [esp]
jmp 0x619154
mov dword [esp + 0x120], eax
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x100]
mov dword [esp + 0x30], 0
test eax, eax
je 0x6191c5
mov edx, dword [edi + 0x104]
lea ecx, [esp + 0x520]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x6191c5
cmp edx, 0x10000
jne 0x6191c5
lea ecx, [esp + 0x520]
add dword [ecx + 8], 2
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1da], dx
je 0x6191c3
mov ecx, dword [esp + 0x524]
mov eax, dword [esp + 0x528]
sub ecx, eax
mov dword [esp + 0x364], ecx
jae 0x61922d
jmp 0x619238
jmp 0x61923b
add eax, dword [esp + 0x520]
mov dword [esp + 0x368], edx
mov esi, eax
jmp 0x619044
add ecx, dword [esp + 0x520]
mov dword [esp + 0x11c], ecx
jmp 0x6190b5
movzx ecx, dx
imul edx, ecx, 0xc
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x358], edx
add ecx, edx
jb 0x618ff9
cmp ecx, eax
ja 0x618ff9
mov eax, dword [esp + 0x118]
add eax, dword [esp + 0x520]
mov dword [esp + 0x118], eax
jmp 0x618ffb
add eax, dword [esp + 0x520]
mov dword [esp + 0x30], eax
mov edi, dword [esp]
mov eax, edi
mov edi, dword [edi + 0x108]
mov dword [esp + 0x1c], 0
test edi, edi
je 0x61a112
mov ebx, dword [eax + 0x10c]
lea ecx, [esp + 0x78]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
call fcn.0060eef4
test al, 1
mov byte [esp + 4], dl
je 0x61a112
lea ecx, [esp + 0x78]
inc dword [ecx + 8]
call fcn.0060eef4
test al, 1
mov byte [esp + 0x24], dl
je 0x61a112
lea ecx, [esp + 0x78]
call fcn.0060e3bf
test ax, ax
je 0x61a112
cmp byte [esp + 4], 2
jne 0x61a112
cmp byte [esp + 0x24], 5
mov dword [esp + 0x18], ebx
jbe 0x6196c8
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x80]
lea eax, [eax + ecx - 5]
jmp 0x6196cf
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
movzx eax, dx
xor edx, edx
sub ecx, eax
lea eax, [esi + eax]
cmovae edx, eax
mov dword [esp + 0x344], ecx
mov dword [esp + 0x28c], edx
lea ecx, [esp + 0x144]
call fcn.0060e681
push 3
pop ecx
test ax, 0xfffd
mov dword [esp + 0x290], ecx
jne 0x61934d
lea ecx, [esp + 0x144]
call fcn.0060e681
push 2
pop ecx
test ax, 0xfffd
mov dword [esp + 0x10], ecx
jne 0x619492
push 0x17
pop ecx
lea edi, [esp + 0x480]
lea esi, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp]
jmp 0x618e7f
mov ebx, dword [esp + 0x98]
movzx edi, dx
sub ebx, edi
jb 0x619315
add edi, dword [esp + 0x94]
lea esi, [esp + 0x128]
lea ecx, [esp + 0x520]
mov edx, esi
mov dword [esi], edi
mov dword [esi + 4], ebx
and dword [esi + 8], 0
push ebx
push edi
call fcn.006133d6
pop eax
pop ecx
mov edx, esi
lea ecx, [esp + 0x53c]
push ebx
push edi
call fcn.006133d6
pop eax
pop ecx
mov edx, esi
lea ecx, [esp + 0x558]
push ebx
push edi
call fcn.0061333c
pop eax
pop ecx
mov ecx, esi
call fcn.0060e681
test ax, ax
je 0x619987
movzx eax, ax
cmp eax, 2
je 0x619987
movzx eax, dx
sub ebx, eax
jb 0x619987
add edi, eax
lea edx, [esp + 0x480]
lea esi, [esp + 0x150]
mov dword [edx], edi
mov dword [edx + 4], ebx
and dword [edx + 8], 0
mov ecx, esi
push ebx
push edi
call fcn.0061333c
pop eax
pop ecx
mov esi, dword [esi]
cmp esi, 2
je 0x619987
mov eax, dword [esp + 0x154]
lea ecx, [esp + 0x480]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc], eax
call fcn.0060e3bf
test ax, ax
je 0x619987
mov ecx, dword [esp + 0x488]
movzx eax, dx
shl eax, 3
mov edx, ecx
add edx, eax
jb 0x619987
cmp edx, dword [esp + 0x484]
ja 0x619987
mov dword [esp + 0x564], esi
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
add ecx, dword [esp + 0x480]
mov dword [esp + 0x568], edx
mov dword [esp + 0x56c], esi
mov dword [esp + 0x570], edi
mov dword [esp + 0x574], ebx
mov dword [esp + 0x578], ecx
mov dword [esp + 0x57c], eax
jmp 0x619992
movzx eax, dx
sub dword [esp + 0x98], eax
jb 0x619332
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x128]
add edx, eax
mov eax, dword [esp + 0x98]
mov dword [ecx], edx
mov dword [esp + 0x94], edx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1d8], dx
je 0x619332
mov edi, dword [esp + 0x98]
lea esi, [esp + 0x128]
lea ecx, [esp + 0x480]
mov edx, esi
push edi
mov ebx, dword [esp + 0x98]
push ebx
call fcn.0061333c
pop eax
pop ecx
mov edx, esi
lea ecx, [esp + 0x520]
push edi
push ebx
call fcn.0061333c
pop eax
pop ecx
mov ecx, esi
call fcn.0060e3bf
test ax, ax
je 0x619332
lea ecx, [esp + 0x128]
mov edi, edx
call fcn.0060e3bf
test ax, ax
je 0x619332
mov esi, edx
lea ecx, [esp + 0x128]
mov edx, edi
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x32c], edx
mov dword [esp + 0x328], eax
je 0x619332
lea ecx, [esp + 0x128]
mov edx, esi
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x324], edx
mov dword [esp + 0x320], eax
je 0x619332
mov eax, dword [esp + 0x480]
mov edx, dword [esp + 0x484]
xor ecx, ecx
mov dword [esp + 0x228], str.dest_is_out_of_bounds
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 0
cmp eax, 2
cmove eax, ecx
mov dword [esp + 0x10], eax
mov eax, str.dest_is_out_of_bounds
cmove edx, eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0x300], edx
cmove eax, ecx
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x520]
cmp eax, 2
je 0x619332
mov ecx, dword [esp + 0x524]
mov edx, dword [esp + 0x528]
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], ecx
mov dword [esp + 0x220], edx
jmp 0x619332
cmp di, 1
mov dword [esp + 0x270], str.dest_is_out_of_bounds
mov dword [esp + 0x26c], 0
jne 0x6199b4
movzx edx, word [esp + 4]
lea edi, [esp + 0x520]
mov ecx, edi
push esi
push ebx
call fcn.006134b1
pop eax
pop ecx
mov eax, dword [edi]
test eax, eax
mov dword [esp + 4], eax
je 0x619139
mov eax, dword [esp + 0x524]
movzx edi, word [esp + 0x532]
mov edx, dword [esp + 0x534]
mov ecx, dword [esp + 0x538]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x528]
mov word [esp + 0x1d6], di
mov dword [esp + 0x260], edx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x25c], eax
movzx eax, word [esp + 0x530]
mov dword [esp + 0x34], eax
jmp 0x6199fb
mov eax, dword [esp + 0x80]
movzx ecx, dx
mov esi, eax
add esi, ecx
jb 0x61a112
cmp esi, dword [esp + 0x7c]
ja 0x61a112
mov edx, dword [esp + 0x78]
mov dword [esp + 0x80], esi
mov esi, 0xffffeff8
test esi, esi
je 0x61970f
and dword [esp + esi + 0x152c], 0
and dword [esp + esi + 0x1528], 0
add esi, 8
jmp 0x6196f6
add edx, eax
lea esi, [esp + 0x150]
lea eax, [esp + 0x520]
mov dword [esp + 4], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x58], 0
mov dword [esi], edx
mov dword [esi + 4], ecx
and dword [esi + 0x10], 0
and dword [esi + 0x14], 0
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x201
and word [esi + 0x18], 0
mov ecx, esi
call fcn.0060efe2
cmp ax, 1
jne 0x6197ac
cmp dx, 0x11
je 0x619789
movzx eax, dx
cmp eax, 0x18
je 0x61979d
cmp eax, 0x4d4
jne 0x619753
mov ecx, esi
call fcn.0060f0c0
mov dword [esp + 0x58], eax
mov dword [esp + 0x110], edx
jmp 0x619753
mov ecx, esi
call fcn.0060f0c0
test eax, eax
mov dword [esp + 4], edx
jne 0x619753
jmp 0x61a112
mov ecx, esi
call fcn.0060f0c0
mov dword [esp + 0x38], eax
mov ebx, edx
jmp 0x619753
cmp dword [esp + 4], 0
je 0x61a112
lea esi, [esp + 0x520]
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.00611c85
mov al, byte [esi + 0x10]
test al, al
mov byte [esp + 0x77], al
je 0x61a112
mov eax, dword [esp + 0x520]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x52c]
mov dword [esp + 0x334], eax
mov eax, dword [esp + 0x524]
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x330], edx
mov dword [esp + 0x338], eax
mov eax, dword [esp + 0x528]
mov dword [esp + 0x33c], eax
movzx eax, word [esp + 0x531]
mov word [esp + 0x72], ax
mov al, byte [esp + 0x533]
mov byte [esp + 0x74], al
ja 0x61a112
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
lea edx, [esp + 0x150]
lea esi, [esp + 0x520]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, esi
call fcn.00611c85
mov al, byte [esi + 0x10]
test al, al
mov dword [esp + 0x24], eax
je 0x61a112
mov eax, dword [esp + 0x520]
movzx esi, word [esp + 0x531]
mov dl, byte [esp + 0x533]
cmp dword [esp + 0x38], 1
mov ecx, dword [esp + 0x52c]
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], str.dest_is_out_of_bounds
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x524]
mov word [esp + 0xf0], si
mov byte [esp + 0xf2], dl
mov dword [esp + 0x314], ecx
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0x528]
mov dword [esp + 0x31c], eax
jne 0x619cc4
cmp ebx, dword [esp + 0x18]
ja 0x61a112
mov eax, dword [esp + 0x18]
lea esi, [esp + 0x520]
lea edx, [esp + 0x150]
add ebx, 2
mov ecx, esi
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
call fcn.00611ca8
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x21c], eax
je 0x61a112
mov eax, dword [esp + 0x524]
movzx ecx, word [esp + 0x53a]
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x528]
mov word [esp + 0x1d2], cx
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x530]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x534]
mov dword [esp + 0x218], eax
movzx eax, word [esp + 0x538]
mov dword [esp + 0x38], eax
jmp 0x619d0e
mov dword [esp + 0x564], 2
lea esi, [esp + 0x524]
mov eax, dword [esi - 4]
mov dword [esp + 0x290], eax
push 0x17
pop ecx
lea edi, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
jmp 0x619315
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], str.dest_is_out_of_bounds
mov dword [esp + 0x34], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x258], str.dest_is_out_of_bounds
mov dword [esp + 0x254], 0
mov dword [esp + 4], str.dest_is_out_of_bounds
cmp word [esp + 0x30], 1
jne 0x619a96
movzx edx, word [esp + 0x1c]
lea edi, [esp + 0x520]
mov ecx, edi
push esi
push ebx
call fcn.006134b1
pop eax
pop ecx
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x250], eax
je 0x619139
mov eax, dword [esp + 0x524]
movzx esi, word [esp + 0x532]
mov edx, dword [esp + 0x534]
mov ecx, dword [esp + 0x538]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x528]
mov word [esp + 0x1d4], si
mov dword [esp + 0x270], edx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x26c], eax
movzx eax, word [esp + 0x530]
mov dword [esp + 0x120], eax
jmp 0x619acd
mov dword [esp + 0x120], 0
mov dword [esp + 0x248], str.dest_is_out_of_bounds
mov dword [esp + 0x244], 0
mov dword [esp + 0x250], str.dest_is_out_of_bounds
mov dword [esp + 0x24c], 0
mov eax, dword [esp + 4]
mov dword [esp + 0x6c], eax
jmp 0x619144
mov ax, 6
mov dword [esp + 0xc], eax
jmp 0x618f89
jmp 0x618c3d
mov dword [esp + 0x38], 0
mov dword [esp + 0x218], 0
mov dword [esp + 0x214], str.dest_is_out_of_bounds
mov dword [esp + 0x210], 0
mov dword [esp + 0x20c], str.dest_is_out_of_bounds
mov dword [esp + 0x208], 0
mov dword [esp + 0x21c], str.dest_is_out_of_bounds
cmp dword [esp + 0x58], 1
mov byte [esp + 0x17], 1
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], str.dest_is_out_of_bounds
jne 0x61a023
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x110], eax
ja 0x61a112
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x110]
lea edx, [esp + 0x144]
lea esi, [esp + 0x520]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, esi
call fcn.00611c85
movzx ecx, byte [esi + 0x10]
test ecx, ecx
je 0x61a112
movsd xmm0, qword [esp + 0x520]
movsd xmm1, qword [esp + 0x528]
movzx eax, word [esp + 0x531]
lea edx, [esp + 0x12c]
xor esi, esi
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov word [edx + 0x11], ax
mov al, byte [esp + 0x533]
mov byte [edx + 0x13], al
mov byte [edx + 0x10], cl
mov eax, dword [edx + 0xc]
xor edx, edx
div ecx
mov dword [esp + 0x1c0], 0
sub eax, 1
cmovb eax, esi
lea esi, [esp + 0x150]
xor edx, edx
mov dword [esp + 0x58], eax
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x1c4], str.dest_is_out_of_bounds
mov byte [esp + 0x17], 1
je 0x61a00d
lea eax, [edx + 1]
lea ecx, [esp + 0x12c]
mov dword [esp + 4], eax
mov dword [esp + 0x128], eax
call fcn.0060ef96
test eax, eax
je 0x61a00d
mov ecx, 0xffffeff8
test ecx, ecx
je 0x619e35
and dword [esp + ecx + 0x152c], 0
and dword [esp + ecx + 0x1528], 0
add ecx, 8
jmp 0x619e1c
lea ecx, [esp + 0x520]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
and dword [esp + 0x160], 0
and dword [esp + 0x164], 0
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], 0x201
and word [esp + 0x168], 0
mov ecx, esi
call fcn.0060efe2
cmp ax, 1
jne 0x619fd9
cmp dx, 0x12
jne 0x619e75
mov ecx, esi
call fcn.0060f186
test al, al
je 0x619fd9
mov ecx, esi
call fcn.0060f3e3
cmp edx, 2
jne 0x619fd9
movsd xmm0, qword [eax]
mov edx, 0
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si ecx, xmm0
cmovp ecx, edx
test ecx, ecx
js 0x619fd9
movsd xmm0, qword [eax + 8]
mov eax, 0
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si ebx, xmm0
cmovp ebx, eax
test ebx, ebx
js 0x619fd9
lea edx, [ebx + ecx]
lea eax, [edi + ebx]
cmp edx, dword [esp + 0x18]
mov edx, 0
cmova eax, edx
ja 0x61a112
mov edx, 0xffffeff8
test edx, edx
je 0x619f3a
and dword [esp + edx + 0x152c], 0
and dword [esp + edx + 0x1528], 0
add edx, 8
jmp 0x619f21
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], ecx
lea ecx, [esp + 0x520]
and dword [esp + 0x160], 0
and dword [esp + 0x164], 0
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], 0x201
and word [esp + 0x168], 0
mov ecx, esi
call fcn.0060efe2
cmp ax, 1
jne 0x619fd9
cmp dx, 0x13
jne 0x619f7a
mov ecx, esi
call fcn.0060f186
test al, al
je 0x619fd9
mov ecx, esi
call fcn.0060f3e3
cmp edx, 1
jne 0x619fd9
movsd xmm0, qword [eax]
mov edx, dword [esp + 4]
mov ecx, 0
ucomisd xmm0, xmm0
maxsd xmm0, qword [0x6463d0]
minsd xmm0, qword [0x6463d8]
cvttsd2si eax, xmm0
cmovp eax, ecx
test eax, eax
js 0x619ddb
jmp 0x61a07c
mov edx, dword [esp + 4]
jmp 0x619ddb
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], str.dest_is_out_of_bounds
movzx edx, word [esp + 0x72]
mov al, byte [esp + 0x74]
movzx esi, word [esp + 0xf4]
mov ch, byte [esp + 0xf6]
mov cl, byte [esp + 0xf2]
mov word [esp + 0xec], dx
movzx edx, word [esp + 0xf0]
mov byte [esp + 0xee], al
mov word [esp + 0xe8], si
mov byte [esp + 0xea], ch
mov byte [esp + 0xe6], cl
mov word [esp + 0xe4], dx
jmp 0x61a11e
add ebx, eax
sub dword [esp + 0x18], ebx
jb 0x61a112
mov eax, dword [esp + 0x18]
add edi, ebx
lea edx, [esp + 0x150]
lea esi, [esp + 0x520]
mov dword [edx], edi
mov ecx, esi
mov dword [edx + 4], eax
and dword [edx + 8], 0
call fcn.00611c85
mov al, byte [esi + 0x10]
test al, al
mov byte [esp + 0x17], al
je 0x61a112
mov esi, dword [esp + 0x524]
mov eax, dword [esp + 0x520]
mov edi, dword [esp + 0x528]
movzx edx, word [esp + 0x531]
mov cl, byte [esp + 0x533]
mov dword [esp + 0x100], esi
mov esi, dword [esp + 0x52c]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x1c4], edi
mov word [esp + 0xf4], dx
mov byte [esp + 0xf6], cl
mov dword [esp + 0x1c0], esi
jmp 0x61a023
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0
mov eax, dword [esp]
mov edi, dword [eax + 0x110]
test edi, edi
je 0x61a19d
mov ebx, dword [eax + 0x114]
lea ecx, [esp + 0x520]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x61a19d
cmp edx, 0x10000
jne 0x61a19d
lea ecx, [esp + 0x520]
call fcn.0060e3bf
test ax, ax
je 0x61a19d
lea ecx, [esp + 0x520]
mov esi, edx
add dword [ecx + 8], 2
call fcn.0060e3bf
test ax, ax
je 0x61a19d
test dx, dx
je 0x61a19d
movzx eax, si
cmp ebx, eax
jb 0x61a19d
movzx ecx, dx
imul ecx, ecx, 0x14
mov dword [esp + 0x110], ecx
add ecx, eax
cmp ecx, ebx
jbe 0x61b131
movzx eax, word [esp + 0x48]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x44]
movzx edx, word [esp + 0xc4]
mov dword [esp + 0x48], eax
mov eax, dword [esp]
shl edi, 0x10
shl ecx, 0x10
mov ebx, dword [eax + 0x118]
push 2
pop esi
test ebx, ebx
mov dword [esp + 0xc4], esi
je 0x61a346
mov eax, dword [eax + 0x11c]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x150]
mov dword [esp + 4], edx
mov dword [ecx], ebx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
mov dword [esp + 0x18], eax
call fcn.0060e40e
test eax, eax
je 0x61a33c
cmp edx, 0x10000
jne 0x61a33c
lea ecx, [esp + 0x150]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x58], dx
je 0x61a33c
lea ecx, [esp + 0x150]
call fcn.0060e3bf
test ax, ax
mov word [esp + 0xc0], dx
je 0x61a33c
lea ecx, [esp + 0x150]
call fcn.0060e40e
test eax, eax
mov dword [esp + 0x108], edx
je 0x61a33c
lea ecx, [esp + 0x150]
call fcn.0060e3bf
test ax, ax
je 0x61a33c
lea ecx, [esp + 0x150]
mov esi, edx
call fcn.0060e3bf
test ax, ax
mov dword [esp + 0x8c], edx
je 0x61a33c
lea ecx, [esp + 0x150]
call fcn.0060e40e
test eax, eax
mov dword [esp + 0x1bc], edx
je 0x61a33c
cmp word [esp + 0x58], 0
je 0x61a33c
mov eax, dword [esp + 0x108]
cmp eax, dword [esp + 0x18]
ja 0x61a33c
mov eax, dword [esp + 0x18]
mov dword [esp + 0x520], ebx
mov dword [esp + 0x524], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x528], eax
movzx eax, word [esp + 0xc0]
mul word [esp + 0x58]
jo 0x61a33c
lea ecx, [esp + 0x520]
mov edx, eax
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x30c], edx
mov dword [esp + 0x308], eax
je 0x61a33c
mov ecx, dword [esp + 0x1bc]
xor eax, eax
add ebx, ecx
sub dword [esp + 0x18], ecx
cmovae eax, ebx
mov dword [esp + 0x1bc], eax
jb 0x61a33c
inc si
jne 0x61b13c
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 4]
jmp 0x61a346
mov ebx, dword [esp]
mov eax, dword [esp + 0x48]
or edx, ecx
lea ecx, [esp + 0x520]
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x120]
or edi, eax
mov dword [esp + 0xc0], edi
push dword [ebx + 0x124]
call fcn.0061b4b3
pop eax
mov edi, dword [ebx + 0x128]
test edi, edi
je 0x61a3f7
mov ebx, dword [ebx + 0x12c]
lea ecx, [esp + 0x78]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
and dword [ecx + 8], 0
call fcn.0060e40e
test eax, eax
je 0x61a3e3
cmp edx, 0x10000
jne 0x61a3e3
lea ecx, [esp + 0x78]
add dword [ecx + 8], 2
call fcn.0060e3bf
test ax, ax
je 0x61a3e3
cmp dx, 8
jne 0x61a3e3
lea ecx, [esp + 0x78]
call fcn.0060e3bf
test ax, ax
je 0x61a3e3
mov esi, edx
test dx, dx
je 0x61a3e3
lea ecx, [esp + 0x78]
call fcn.0060e681
test ax, 0xfffd
jne 0x61b08a
mov dword [esp + 0x48], 0
mov esi, dword [esp + 0x2b0]
mov ebx, dword [esp]
jmp 0x61a406
mov esi, dword [esp + 0x2b0]
mov dword [esp + 0x48], 0
mov edi, dword [esp + 0x50]
mov edx, dword [ebx + 0x130]
lea eax, [esi + 0x68]
lea ecx, [esp + 0x150]
mov dword [esp], eax
push dword [ebx + 0x134]
call fcn.0061b4b3
pop eax
movzx eax, word [esp + 0x4e]
mov ecx, dword [esp + 0x1b0]
movss xmm0, dword [esp + 0x1b4]
mov byte [esi + 0x241], ah
movzx eax, word [esp + 0x1e6]
mov word [esi + 0x242], ax
movzx eax, word [esp + 0x1e4]
mov word [esi + 0x244], ax
movzx eax, word [esp + 0x1e2]
mov word [esi + 0x246], ax
movzx eax, word [esp + 0x1e0]
mov word [esi + 0x248], ax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x140], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0x144], eax
mov eax, dword [esp + 0x88]
mov dword [esi + 0x148], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 0x14c], eax
mov eax, dword [esp + 0xb4]
mov dword [esi + 0x150], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 0x154], eax
mov eax, dword [esp + 0xb0]
mov dword [esi + 0x158], eax
mov eax, dword [esp + 0xf8]
mov dword [esi + 0x15c], eax
mov eax, dword [esp + 0x68]
mov byte [esi + 0x160], al
mov eax, ecx
mov word [esi + 0x161], cx
shr eax, 0x10
mov byte [esi + 0x163], al
mov al, byte [esp + 0x16]
mov byte [esi + 0x164], al
mov al, byte [esp + 0xe2]
mov byte [esi + 0x167], al
movzx eax, word [esp + 0xe0]
mov word [esi + 0x165], ax
movss dword [esi + 0x168], xmm0
movss xmm0, dword [esp + 0x1b8]
mov eax, dword [esp + 0xb8]
movss dword [esi + 0x16c], xmm0
mov dword [esi + 0x170], eax
mov eax, dword [esp + 0x1ac]
movsd xmm0, qword [esp + 0x2d8]
mov dword [esi + 0x174], edi
lea edi, [esi + 0x38c]
mov dword [esi + 0x178], eax
movsd qword [esi + 0x184], xmm0
movsd xmm0, qword [esp + 0x2d0]
mov al, byte [esp + 0x76]
movsd qword [esi + 0x17c], xmm0
mov byte [esi + 0x18c], al
mov al, byte [esp + 0xde]
movsd xmm0, qword [esp + 0x408]
mov byte [esi + 0x18f], al
movzx eax, word [esp + 0xdc]
mov word [esi + 0x18d], ax
movsd qword [esi + 0x190], xmm0
movsd xmm0, qword [esp + 0x410]
mov al, byte [esp + 0x75]
movsd qword [esi + 0x198], xmm0
mov byte [esi + 0x1a0], al
mov al, byte [esp + 0xda]
movsd xmm0, qword [esp + 0x3d8]
mov byte [esi + 0x1a3], al
movzx eax, word [esp + 0xd8]
mov word [esi + 0x1a1], ax
mov eax, dword [esp + 0x3e0]
movsd qword [esi + 0x1a4], xmm0
movss xmm0, dword [esp + 0x22c]
mov dword [esi + 0x1ac], eax
mov eax, dword [esp + 0x2f4]
mov dword [esi + 0x1b0], eax
mov eax, dword [esp + 0x124]
mov byte [esi + 0x1b4], al
mov al, byte [esp + 0xd6]
mov byte [esi + 0x1b7], al
movzx eax, word [esp + 0xd4]
mov word [esi + 0x1b5], ax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x1b8], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x1bc], eax
movss dword [esi + 0x1c0], xmm0
movss xmm0, dword [esp + 0x230]
mov eax, dword [esp + 0x3c]
movss dword [esi + 0x1c4], xmm0
movss xmm0, dword [esp + 0x234]
movss dword [esi + 0x1c8], xmm0
movss xmm0, dword [esp + 0x23c]
movss dword [esi + 0x1cc], xmm0
movss xmm0, dword [esp + 0x238]
movss dword [esi + 0x1d0], xmm0
movss xmm0, dword [esp + 0x240]
movss dword [esi + 0x1d4], xmm0
mov word [esi + 0x1d8], ax
mov eax, dword [esp + 8]
movsd xmm0, qword [esp + 0x2e0]
mov dword [esi + 0x2f8], eax
mov eax, dword [esp + 0x37c]
mov dword [esi + 0x2fc], eax
mov eax, dword [esp + 0x378]
mov dword [esi + 0x300], eax
mov eax, dword [esp + 0x398]
mov dword [esi + 0x304], eax
mov eax, dword [esp + 0x2f0]
movsd qword [esi + 0x318], xmm0
movsd xmm0, qword [esp + 0x2e8]
mov dword [esi + 0x328], eax
mov eax, dword [esp + 0x9c]
movsd qword [esi + 0x320], xmm0
movss xmm0, dword [esp + 0x354]
mov dword [esi + 0x24c], eax
mov eax, dword [esp + 0x294]
mov dword [esi + 0x250], eax
mov eax, dword [esp + 0x298]
mov dword [esi + 0x254], eax
mov eax, dword [esp + 0xa4]
mov byte [esi + 0x258], al
mov al, byte [esp + 0x74]
mov byte [esi + 0x25b], al
movzx eax, word [esp + 0x72]
mov word [esi + 0x259], ax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x32c], eax
mov eax, dword [esp + 0x348]
mov dword [esi + 0x330], eax
mov eax, dword [esp + 0x274]
mov dword [esi + 0x334], eax
mov eax, dword [esp + 0x27c]
mov dword [esi + 0x338], eax
mov eax, dword [esp + 0xa8]
mov dword [esi + 0x33c], eax
mov eax, dword [esp + 0x360]
mov dword [esi + 0x340], eax
movzx eax, word [esp + 0x70]
mov byte [esi + 0x344], al
movzx eax, word [esp + 0x78]
mov word [esi + 0x345], ax
mov al, byte [esp + 0x7a]
mov byte [esi + 0x347], al
mov eax, dword [esp + 0x284]
mov dword [esi + 0x25c], eax
mov eax, dword [esp + 0x288]
mov dword [esi + 0x260], eax
mov eax, dword [esp + 0x114]
mov dword [esi + 0x264], eax
mov eax, dword [esp + 0x280]
mov dword [esi + 0x268], eax
movzx eax, word [esp + 0xd0]
movss dword [esi + 0x26c], xmm0
movsd xmm0, qword [esp + 0x3fc]
mov word [esi + 0x270], ax
movzx eax, word [esp + 0xd2]
mov word [esi + 0x272], ax
mov al, byte [esp + 0xbc]
mov byte [esi + 0x274], al
movzx eax, word [esp + 0x144]
mov word [esi + 0x275], ax
mov al, byte [esp + 0x146]
mov byte [esi + 0x277], al
mov eax, dword [esp + 0x3c0]
mov dword [esi + 0x348], eax
mov eax, dword [esp + 0x388]
mov dword [esi + 0x34c], eax
mov eax, dword [esp + 0x34c]
mov dword [esi + 0x350], eax
mov eax, dword [esp + 0x350]
mov dword [esi + 0x354], eax
movzx eax, word [esp + 0x1de]
mov word [esi + 0x358], ax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x35c], eax
mov eax, dword [esp + 0x374]
mov dword [esi + 0x360], eax
mov eax, dword [esp + 0x1c8]
mov dword [esi + 0x364], eax
mov eax, dword [esp + 0x340]
mov dword [esi + 0x368], eax
movzx eax, word [esp + 0x404]
movsd qword [esi + 0x4ac], xmm0
movsd xmm0, qword [esp + 0x3f0]
mov word [esi + 0x4b4], ax
mov eax, dword [esp + 0x3f8]
movsd qword [esi + 0x374], xmm0
movsd xmm0, qword [esp + 0x3e8]
mov dword [esi + 0x37c], eax
mov eax, dword [esp + 0x1cc]
movsd qword [esi + 0x36c], xmm0
movsd xmm0, qword [esp + 0x1f8]
mov dword [esi + 0x380], eax
mov eax, dword [esp + 0x35c]
mov dword [esi + 0x384], eax
movzx eax, word [esp + 0x1dc]
mov word [esi + 0x388], ax
movzx eax, word [esp + 0xa0]
mov word [esi + 0x1dc], ax
movzx eax, word [esp + 0x200]
movsd qword [esi + 0x1de], xmm0
movsd xmm0, qword [esp + 0x1e8]
mov word [esi + 0x1e6], ax
movzx eax, word [esp + 0xce]
mov word [esi + 0x1e8], ax
movzx eax, word [esp + 0x1f0]
movsd qword [esi + 0x1ea], xmm0
movsd xmm0, qword [esp + 0x2c8]
mov word [esi + 0x1f2], ax
mov eax, dword [esp + 0x10c]
mov dword [esi + 0x1f4], eax
mov eax, dword [esp + 0x268]
mov dword [esi + 0x1f8], eax
mov eax, dword [esp + 0x2f8]
mov dword [esi + 0x1fc], eax
mov eax, dword [esp + 0x2fc]
mov dword [esi + 0x200], eax
mov eax, dword [esp + 0x278]
mov dword [esi + 0x204], eax
movsd qword [esi + 0x218], xmm0
movsd xmm0, qword [esp + 0x2c0]
movsd qword [esi + 0x210], xmm0
movsd xmm0, qword [esp + 0x2b8]
movsd qword [esi + 0x208], xmm0
push 0x10
pop eax
mov edx, esi
lea esi, [esp + 0x4e0]
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0x3cc]
lea esi, [esp + 0x430]
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0xdc]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x328]
mov dword [edx + 0x9c], eax
mov eax, dword [esp + 0x300]
mov dword [edx + 0xa0], eax
mov eax, dword [esp + 0x304]
mov dword [edx + 0xa4], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 0xa8], ecx
mov dword [edx + 0xac], eax
mov dword [edx + 0xb0], esi
mov esi, dword [esp + 0x32c]
mov dword [edx + 0xb4], esi
mov esi, dword [esp + 0x224]
mov dword [edx + 0xb8], esi
mov esi, dword [esp + 0x228]
mov dword [edx + 0xbc], esi
mov esi, dword [esp + 0x220]
mov dword [edx + 0xc0], esi
mov dword [edx + 0xc4], ecx
mov dword [edx + 0xc8], eax
mov eax, dword [esp + 0x320]
mov dword [edx + 0xcc], eax
mov eax, dword [esp + 0x324]
mov dword [edx + 0xd0], eax
movzx eax, word [esp + 0x1d8]
mov word [edx + 0xd4], ax
mov eax, dword [esp + 0x290]
mov dword [edx + 0xd8], eax
push 0x17
pop ecx
lea esi, [esp + 0x480]
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0x34]
mov eax, dword [esp + 0x28c]
mov ebx, dword [esp + 0x2c]
mov dword [edx + 0x138], eax
mov eax, dword [esp + 0x344]
mov dword [edx + 0x13c], eax
mov eax, dword [esp + 0xc]
mov word [edx + 0x220], ax
movzx eax, word [esp + 0xcc]
mov word [edx + 0x222], ax
mov eax, dword [esp + 0x90]
mov dword [edx + 0x224], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 0x228], eax
mov eax, dword [esp + 0x104]
mov dword [edx + 0x22c], eax
mov eax, dword [esp + 0x2a8]
mov dword [edx + 0x230], eax
mov eax, dword [esp + 0x2a4]
mov dword [edx + 0x234], eax
mov eax, dword [esp + 0x36c]
mov dword [edx + 0x238], eax
mov eax, dword [esp + 0x370]
mov dword [edx + 0x23c], eax
mov eax, dword [esp + 0x3b8]
mov dword [edx + 0x40c], eax
mov eax, dword [esp + 0x39c]
mov dword [edx + 0x410], eax
mov eax, dword [esp + 0x118]
mov dword [edx + 0x414], eax
mov eax, dword [esp + 0x358]
mov dword [edx + 0x418], eax
mov eax, dword [esp + 0x3bc]
mov dword [edx + 0x41c], eax
mov eax, dword [esp + 0x394]
mov dword [edx + 0x420], eax
mov eax, dword [esp + 0x368]
mov dword [edx + 0x424], eax
mov eax, dword [esp + 0x11c]
mov word [edx + 0x428], bx
mov dword [edx + 0x42c], eax
mov eax, dword [esp + 0x38c]
mov dword [edx + 0x430], eax
mov eax, dword [esp + 0x390]
mov dword [edx + 0x434], eax
mov eax, dword [esp + 0x6c]
mov word [edx + 0x438], bx
mov dword [edx + 0x43c], eax
mov eax, dword [esp + 0x254]
mov dword [edx + 0x440], eax
mov eax, dword [esp + 0x258]
mov dword [edx + 0x444], eax
mov eax, dword [esp + 0x25c]
mov dword [edx + 0x448], eax
mov eax, dword [esp + 0x34]
mov word [edx + 0x44c], ax
movzx eax, word [esp + 0x1d6]
mov word [edx + 0x44e], ax
mov eax, dword [esp + 0x260]
mov dword [edx + 0x450], eax
mov eax, dword [esp + 0x264]
mov dword [edx + 0x454], eax
mov eax, dword [esp + 0x250]
mov dword [edx + 0x458], eax
mov eax, dword [esp + 0x244]
mov dword [edx + 0x45c], eax
mov eax, dword [esp + 0x248]
mov dword [edx + 0x460], eax
mov eax, dword [esp + 0x26c]
mov dword [edx + 0x464], eax
mov eax, dword [esp + 0x120]
mov word [edx + 0x468], ax
movzx eax, word [esp + 0x1d4]
mov word [edx + 0x46a], ax
mov eax, dword [esp + 0x270]
mov dword [edx + 0x46c], eax
mov eax, dword [esp + 0x24c]
mov dword [edx + 0x470], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 0x474], eax
mov eax, dword [esp + 0x364]
mov dword [edx + 0x478], eax
movzx eax, word [esp + 0x1da]
mov word [edx + 0x47c], ax
mov eax, dword [esp + 0x21c]
mov dword [edx + 0x278], eax
mov eax, dword [esp + 0x208]
mov dword [edx + 0x27c], eax
mov eax, dword [esp + 0x20c]
mov dword [edx + 0x280], eax
mov eax, dword [esp + 0x210]
mov dword [edx + 0x284], eax
mov eax, dword [esp + 0x214]
mov dword [edx + 0x288], eax
mov eax, dword [esp + 0x218]
mov dword [edx + 0x28c], eax
mov eax, dword [esp + 0x38]
mov word [edx + 0x290], ax
movzx eax, word [esp + 0x1d2]
mov word [edx + 0x292], ax
mov eax, dword [esp + 0x334]
mov dword [edx + 0x294], eax
mov eax, dword [esp + 0x338]
mov dword [edx + 0x298], eax
mov eax, dword [esp + 0x33c]
mov dword [edx + 0x29c], eax
mov eax, dword [esp + 0x330]
mov dword [edx + 0x2a0], eax
mov al, byte [esp + 0x77]
mov byte [edx + 0x2a4], al
movzx eax, word [esp + 0xec]
mov word [edx + 0x2a5], ax
mov al, byte [esp + 0xee]
mov byte [edx + 0x2a7], al
mov eax, dword [esp + 0xfc]
mov dword [edx + 0x2a8], eax
mov eax, dword [esp + 0x100]
mov dword [edx + 0x2ac], eax
mov eax, dword [esp + 0x1c4]
mov dword [edx + 0x2b0], eax
mov eax, dword [esp + 0x1c0]
mov dword [edx + 0x2b4], eax
mov al, byte [esp + 0x17]
mov byte [edx + 0x2b8], al
movzx eax, word [esp + 0xe8]
mov word [edx + 0x2b9], ax
mov al, byte [esp + 0xea]
mov byte [edx + 0x2bb], al
mov eax, dword [esp + 0x310]
mov dword [edx + 0x2bc], eax
mov eax, dword [esp + 0x318]
mov dword [edx + 0x2c0], eax
mov eax, dword [esp + 0x31c]
mov dword [edx + 0x2c4], eax
mov eax, dword [esp + 0x314]
mov dword [edx + 0x2c8], eax
mov eax, dword [esp + 0x24]
mov byte [edx + 0x2cc], al
movzx eax, word [esp + 0xe4]
mov word [edx + 0x2cd], ax
mov al, byte [esp + 0xe6]
mov byte [edx + 0x2cf], al
mov eax, dword [esp + 0xc4]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x8c]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x204]
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x308]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x30c]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x1bc]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 0x2c], eax
movzx eax, word [esp + 0x58]
mov word [edx + 0x30], ax
push 0xd
pop eax
lea esi, [esp + 0x520]
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x150]
mov ecx, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x128]
movsd xmm2, qword [esp + 0x130]
movsd xmm1, qword [esp + 0x138]
mov edi, dword [esp]
mov dword [edx + 0x488], ecx
mov ecx, dword [esp + 0x44]
movsd qword [edx + 0x48c], xmm0
movsd qword [edx + 0x494], xmm2
movsd qword [edx + 0x49c], xmm1
mov dword [edx + 0x4a4], ecx
mov ecx, dword [esp + 0x108]
mov dword [edx + 0x4a8], ecx
mov ecx, dword [esp + 0x2b4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x29c]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x2a0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x384]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x380]
mov dword [edx + 0x10], ecx
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
movzx eax, word [esp + 0x4e]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc0]
mov byte [edx + 0x240], al
mov eax, dword [esp + 0xc8]
mov byte [edx + 0x24a], al
mov dword [edx + 0x2d4], esi
mov dword [edx + 0x2d0], ecx
mov esi, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x3c4]
mov dword [edx + 0x2d8], esi
mov dword [edx + 0x2dc], ecx
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [edx + 0x2e0], esi
mov dword [edx + 0x2e4], ecx
mov esi, dword [esp + 0x3d4]
mov ecx, dword [esp + 0x3c8]
mov dword [edx + 0x2e8], esi
mov dword [edx + 0x2ec], ecx
mov esi, dword [esp + 0x3ac]
mov ecx, dword [esp + 0x3a8]
mov dword [edx + 0x2f0], esi
mov dword [edx + 0x2f4], ecx
mov esi, dword [esp + 0x3d0]
mov ecx, dword [esp + 0x3cc]
mov dword [edx + 0x308], esi
mov dword [edx + 0x30c], ecx
mov esi, dword [esp + 0x3a4]
mov ecx, dword [esp + 0x3a0]
mov dword [edx + 0x310], esi
mov dword [edx + 0x314], ecx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x110]
mov dword [edx + 0x480], esi
mov dword [edx + 0x484], ecx
mov word [edx + 0x4b6], bx
jmp 0x6174cb
mov eax, dword [esp + 0x80]
movzx ecx, si
shl ecx, 3
mov dword [esp + 0x108], ecx
mov dword [esp + 0x44], eax
add eax, ecx
jb 0x61a3e3
cmp eax, dword [esp + 0x7c]
ja 0x61a3e3
movzx eax, dx
cmp ebx, eax
jb 0x61a3e3
mov ecx, dword [esp + 0x44]
lea esi, [esp + 0x150]
lea edx, [esp + 0x144]
mov dword [edx], edi
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
add ecx, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
mov ecx, esi
call fcn.00611ca8
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x48], eax
je 0x61a3e3
movsd xmm0, qword [esp + 0x164]
movsd xmm2, qword [esp + 0x154]
movsd xmm1, qword [esp + 0x15c]
movsd qword [esp + 0x138], xmm0
movsd qword [esp + 0x130], xmm1
movsd qword [esp + 0x128], xmm2
jmp 0x61a3eb
add edi, eax
mov dword [esp + 0x1c], edi
jmp 0x61a19d
test byte [esp + 0x8c], 1
jne 0x61b19a
mov eax, dword [esp + 0x158]
movzx ecx, si
add ecx, ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x8c], eax
add eax, ecx
jb 0x61a33c
cmp eax, dword [esp + 0x154]
ja 0x61a33c
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc4], 0
add eax, dword [esp + 0x150]
mov dword [esp + 0x8c], eax
jmp 0x61a33c
lea ecx, [esp + 0x150]
mov edx, esi
call fcn.0060e651
test eax, eax
mov dword [esp + 0x204], edx
mov dword [esp + 0x8c], eax
je 0x61a33c
xor eax, eax
inc eax
mov dword [esp + 0xc4], eax
jmp 0x61a33c