Function at 0x670c5640
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, 0x1260
call fcn.67286330
mov eax, dword [0x674c7008]
xor eax, esp
mov dword [esp + 0x125c], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x28], eax
shl eax, 7
push ebx
mov byte [esp + 0x1f], cl
push ebp
mov ebp, dword [edx + 0xc]
lea ecx, [eax + 0x530]
mov dword [esp + 0x48], ecx
lea ecx, [eax + 0x54d]
add eax, 0x53c
mov dword [esp + 0x34], edx
push esi
mov dword [esp + 0x44], eax
lea esi, [ebp + 4]
lea eax, [edx + 0x2c]
mov dword [esp + 0x30], ecx
push edi
mov byte [esp + 0x23], 0
mov dword [esp + 0x5c], eax
cmp dword [eax], esi
jge 0x670c56a8
mov dword [eax], esi
jmp 0x670c6372
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea ebx, [esp + 0xa68]
cmp esi, 0x200
jl 0x670c56da
lea eax, [esi + esi]
push eax
call edi
add esp, 4
mov ebx, eax
push esi
call edi
mov edx, dword [esp + 0x40]
add esp, 4
mov edi, eax
mov dword [esp + 0x40], eax
jmp 0x670c56e5
lea edi, [esp + 0x868]
mov dword [esp + 0x40], edi
cmp byte [esp + 0x1274], 0
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x672b7a2c]
lea eax, [ebp*2]
mov byte [esp + 0x16], cl
mov ecx, 0x25cc
push eax
je 0x670c5725
mov word [ebx], cx
mov ecx, dword [edx + 8]
mov eax, dword [edx]
lea eax, [eax + ecx*2]
push eax
lea eax, [ebx + 2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
inc ebp
jmp 0x670c5737
mov ecx, dword [edx + 8]
mov eax, dword [edx]
lea eax, [eax + ecx*2]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, 0x200c
mov dword [esp + 0x54], 0x4ff
cmp word [ebx + ebp*2 - 2], ax
lea esi, [ebp - 1]
mov dword [esp + 0x64], eax
cmovne esi, ebp
mov dword [esp + 0x60], 0x200d
xor eax, eax
mov dword [esp + 0x44], esi
or ecx, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x4c], ecx
mov ebp, esi
mov dword [esp + 0x1c], ebp
cmp esi, 1
je 0x670c5e95
movzx ecx, word [ebx]
mov byte [esp + 0x24], al
call fcn.670c55f0
cmp eax, 1
je 0x670c57a8
cmp dword [esp + 0x38], 9
mov dword [esp + 0x1c], esi
jne 0x670c5c10
mov dword [esp + 0x1c], esi
cmp eax, 7
jne 0x670c5c10
and byte [esp + 0x16], 1
je 0x670c57f0
cmp esi, 2
jle 0x670c57f0
cmp cx, word [esp + 0x50]
je 0x670c57c5
mov eax, 0x9f0
cmp cx, ax
jne 0x670c57f0
mov ebp, dword [esp + 0x34]
cmp word [ebx + 2], bp
jne 0x670c57f0
mov cx, word [ebx + 4]
mov byte [esp + 0x17], 1
call fcn.670c55f0
movzx ecx, byte [esp + 0x17]
xor edx, edx
cmp eax, 9
cmove ecx, edx
mov dword [esp + 0x24], ecx
jmp 0x670c57f4
mov ecx, dword [esp + 0x24]
push esi
movzx eax, cl
or ebp, 0xffffffff
add eax, eax
mov dword [esp + 0x20], 0
push 0
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], ebp
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x44]
add esp, 0xc
cmp eax, 8
je 0x670c58aa
cmp eax, 0xb
je 0x670c58aa
mov ecx, dword [esp + 0x18]
cmp ecx, esi
jge 0x670c5947
nop word [eax + eax]
movzx edx, word [ebx + ecx*2]
lea eax, [edx - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c5864
mov al, byte [edx + 0x67321340]
mov byte [ecx + edi], al
cmp al, 1
jne 0x670c5893
mov dword [esp + 0x1c], ecx
jmp 0x670c589c
mov eax, 0x25cc
cmp dx, ax
jne 0x670c5878
mov byte [ecx + edi], 1
mov dword [esp + 0x1c], ecx
jmp 0x670c589c
mov eax, 0x200c
cmp dx, ax
je 0x670c588e
mov eax, 0x200d
cmp dx, ax
mov al, 0xa
jne 0x670c5890
mov al, 9
mov byte [ecx + edi], al
test ebp, ebp
jns 0x670c589c
cmp al, 4
cmove ebp, ecx
inc ecx
cmp ecx, esi
jl 0x670c5840
mov dword [esp + 0x30], ebp
jmp 0x670c5947
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x17], 0
cmp ecx, esi
jge 0x670c5947
mov ebp, 0x4ff
movzx edx, word [ebx + ecx*2]
lea eax, [edx - 0x900]
cmp ax, bp
ja 0x670c58ea
mov dl, byte [edx + 0x67321340]
lea eax, [ecx + edi]
mov byte [eax], dl
cmp dl, 1
je 0x670c58fa
cmp dl, 4
jne 0x670c593e
mov dword [esp + 0x30], ecx
jmp 0x670c593e
mov eax, 0x25cc
cmp dx, ax
jne 0x670c5920
lea eax, [edi + ecx]
mov byte [eax], 1
cmp byte [esp + 0x17], 0
mov dword [esp + 0x1c], ecx
jne 0x670c5919
mov edx, dword [esp + 0x50]
cmp word [ebx + ecx*2], dx
jne 0x670c5919
mov byte [esp + 0x17], 1
mov byte [eax], 8
jmp 0x670c593e
mov byte [esp + 0x17], 0
jmp 0x670c593e
mov eax, 0x200c
cmp dx, ax
je 0x670c593a
mov eax, 0x200d
cmp dx, ax
je 0x670c593a
mov byte [edi + ecx], 0xa
jmp 0x670c593e
mov byte [edi + ecx], 9
inc ecx
cmp ecx, esi
jl 0x670c58c0
mov edx, dword [esp + 0x44]
xor ebp, ebp
dec edx
mov ecx, edx
mov dword [esp + 0x2c], edx
lea esi, [ebp + 4]
cmp edx, dword [esp + 0x18]
jl 0x670c59f5
mov al, byte [ecx + edi]
cmp al, 1
je 0x670c5977
cmp al, 9
jne 0x670c59ea
cmp dword [esp + 0x38], 0xf
je 0x670c59ea
cmp ecx, edx
jge 0x670c598a
cmp al, 9
jne 0x670c598a
cmp byte [ecx + edi + 1], 1
je 0x670c5a14
movzx edx, word [ebx + ecx*2]
lea eax, [edx - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c59a4
movzx eax, byte [edx + 0x67320e40]
jmp 0x670c59a6
xor eax, eax
cmp esi, 4
jne 0x670c59b5
cmp eax, esi
jne 0x670c59ba
mov eax, dword [esp + 0x38]
jmp 0x670c59d6
cmp esi, 3
jne 0x670c5a15
cmp eax, 3
jne 0x670c5a15
mov eax, dword [esp + 0x38]
cmp eax, 8
je 0x670c59cd
cmp eax, 0xb
jne 0x670c59d1
mov dword [esp + 0x18], ecx
mov esi, 3
cmp ebp, 2
jne 0x670c59e5
cmp eax, 0xf
je 0x670c5a15
cmp eax, 0xe
je 0x670c5a15
mov edx, dword [esp + 0x2c]
inc ebp
dec ecx
cmp ecx, dword [esp + 0x18]
jge 0x670c5961
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
cmp edx, ecx
jle 0x670c5a49
movzx eax, word [ebx + ecx*2 + 2]
cmp ax, di
jne 0x670c5a1b
lea eax, [ecx + 1]
jmp 0x670c5a2c
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x670c59f9
cmp ax, word [esp + 0x48]
jne 0x670c5a49
cmp word [ebx + ecx*2 + 4], di
lea eax, [ecx + 2]
jne 0x670c5a49
test eax, eax
jle 0x670c5a49
cmp eax, edx
jge 0x670c5a45
lea edi, [ebx + eax*2]
mov ecx, edx
lea esi, [edi + 2]
sub ecx, eax
rep movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x34]
mov word [ebx + edx*2], di
mov esi, dword [esp + 0x30]
xor ebp, ebp
test esi, esi
jle 0x670c5a72
movzx ecx, word [ebx + esi*2]
mov edx, 0x4ff
lea eax, [ecx - 0x900]
cmp ax, dx
ja 0x670c5a70
movzx ebp, byte [ecx + 0x67320e40]
jmp 0x670c5a72
xor ebp, ebp
cmp byte [esp + 0x24], 0
je 0x670c5b40
mov eax, dword [esp + 0x18]
test eax, eax
je 0x670c5b40
lea edx, [eax + 1]
mov eax, dword [esp + 0x44]
cmp edx, eax
jge 0x670c5aba
mov ecx, dword [esp + 0x48]
cmp word [ebx + edx*2], cx
jne 0x670c5aa3
inc edx
cmp edx, eax
jge 0x670c5aba
cmp word [ebx + edx*2], di
jne 0x670c5aae
inc edx
cmp edx, eax
jge 0x670c5aba
mov ecx, 0x200d
cmp word [ebx + edx*2], cx
jne 0x670c5aba
inc edx
cmp edx, dword [esp + 0x2c]
jge 0x670c5ad4
mov ecx, dword [esp + 0x50]
cmp word [ebx + edx*2], cx
jne 0x670c5ad4
cmp word [ebx + edx*2 + 2], di
jne 0x670c5ad4
add edx, 2
mov ecx, dword [esp + 0x38]
cmp ecx, 8
je 0x670c5af0
cmp ecx, 0xb
je 0x670c5af0
cmp ecx, 9
je 0x670c5af0
cmp ecx, 0xf
jne 0x670c5b04
mov edx, eax
jmp 0x670c5afd
cmp ebp, 4
je 0x670c5afa
cmp ebp, 5
jne 0x670c5b04
lea edx, [esi + 1]
sub esi, 2
mov dword [esp + 0x30], esi
cmp edx, 2
jle 0x670c5b1c
lea esi, [ebx + 4]
mov edi, ebx
lea ecx, [edx - 2]
rep movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
sub dword [esp + 0x18], 2
lea eax, [edx - 2]
mov ecx, dword [esp + 0x50]
mov word [ebx + edx*2 - 2], di
or edx, 0xffffffff
cmp byte [esp + 0x16], 0
mov word [ebx + eax*2], cx
cmovne edx, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x1c], edx
cmp ebp, 5
jne 0x670c5be2
movzx eax, word [ebx + esi*2]
lea ebp, [ebx + esi*2]
mov ecx, 0x9cb
mov edi, 0x67321630
cmp cx, ax
jae 0x670c5b6f
add edi, 8
cmp word [edi], ax
jb 0x670c5b67
movzx esi, word [edi + 6]
xor ecx, ecx
test si, si
mov eax, edx
mov edx, dword [esp + 0x30]
setne cl
sub eax, edx
inc ecx
add eax, eax
push eax
push ebp
mov dword [esp + 0x34], ecx
lea eax, [ecx + edx]
lea eax, [ebx + eax*2]
push eax
call sub.VCRUNTIME140.dll_memmove
movzx eax, word [edi + 2]
add esp, 0xc
mov word [ebp], ax
mov ecx, eax
mov ax, word [edi + 4]
mov word [ebp + 2], ax
test si, si
je 0x670c5bbf
mov edx, dword [esp + 0x30]
mov ax, word [edi + 6]
mov word [ebx + edx*2 + 4], ax
mov eax, dword [esp + 0x2c]
mov edx, 0x4ff
add eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
lea eax, [ecx - 0x900]
cmp ax, dx
ja 0x670c5c14
movzx ebp, byte [ecx + 0x67320e40]
cmp ebp, 1
jne 0x670c5c14
mov edx, dword [esp + 0x30]
movzx ecx, word [ebx + edx*2]
test edx, edx
je 0x670c5c02
mov ax, word [ebx + edx*2 - 2]
sub edx, 1
mov word [ebx + edx*2 + 2], ax
jne 0x670c5bf3
mov esi, dword [esp + 0x18]
inc esi
mov word [ebx], cx
mov dword [esp + 0x18], esi
jmp 0x670c5c18
xor esi, esi
jmp 0x670c5c18
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
test esi, esi
jle 0x670c5c2c
push esi
push 1
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ebp, dword [esp + 0x34]
lea edx, [esi + 1]
mov byte [esi + edi], 6
mov ecx, edx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
cmp edx, esi
jge 0x670c5c8d
mov edx, dword [esp + 0x48]
nop dword [eax]
movzx esi, word [ebx + ecx*2]
lea eax, [esi - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c5c69
mov al, byte [esi + 0x67320e40]
jmp 0x670c5c6b
xor al, al
mov byte [ecx + edi], al
movzx eax, word [ebx + ecx*2]
cmp ax, dx
je 0x670c5c7c
cmp ax, bp
jne 0x670c5c80
mov byte [ecx + edi], 9
mov esi, dword [esp + 0x1c]
inc ecx
cmp ecx, esi
jl 0x670c5c50
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jle 0x670c5cba
mov eax, edx
cmp edx, esi
jge 0x670c5cb4
mov ebp, dword [esp + 0x50]
nop
cmp word [ebx + eax*2], bp
cmove ecx, eax
inc eax
cmp eax, esi
jl 0x670c5ca0
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
mov word [ecx + edi], 0x907
cmp edx, esi
jge 0x670c5ce4
mov eax, dword [esp + 0x48]
cmp word [ebx + edx*2], ax
jne 0x670c5ccd
inc edx
cmp edx, esi
jge 0x670c5ce4
cmp word [ebx + edx*2], bp
jne 0x670c5cd8
inc edx
cmp edx, esi
jge 0x670c5ce4
mov eax, 0x200d
cmp word [ebx + edx*2], ax
jne 0x670c5ce4
inc edx
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov eax, dword [eax*4 + 0x6731ef98]
mov dword [esp + 0x44], eax
cmp dword [eax], 0
je 0x670c5e91
lea eax, [ebp - 1]
mov dword [esp + 0x30], eax
cmp edx, eax
jge 0x670c5e8d
mov dword [esp + 0x48], edx
mov eax, edx
cmp edx, ebp
jge 0x670c5e76
lea ecx, [edi - 1]
mov dword [esp + 0x24], ecx
lea ebp, [edx + 1]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
nop
add eax, eax
mov edi, 0x4ff
mov dword [esp + 0x58], eax
movzx esi, word [eax + ebx]
mov dword [esp + 0x34], esi
lea eax, [esi - 0x900]
cmp ax, di
ja 0x670c5d5a
movzx eax, si
movzx eax, byte [eax + 0x67321340]
jmp 0x670c5d89
mov eax, 0x25cc
cmp si, ax
jne 0x670c5d6b
mov eax, 1
jmp 0x670c5d89
mov eax, 0x200c
cmp si, ax
je 0x670c5d84
mov eax, 0x200d
cmp si, ax
mov eax, 0xa
jne 0x670c5d89
mov eax, 9
mov edi, dword [esp + 0x44]
cmp eax, dword [edi]
mov edi, dword [esp + 0x40]
jne 0x670c5e61
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
inc ecx
mov esi, dword [esp + 0x44]
mov al, byte [ecx + eax]
mov byte [esp + 0x16], al
movzx eax, al
cmp eax, dword [esi + 4]
mov esi, dword [esp + 0x34]
jne 0x670c5e5d
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x30]
jge 0x670c5e25
mov edi, dword [esp + 0x24]
cmp byte [ecx + edi + 1], 9
mov edi, dword [esp + 0x40]
jne 0x670c5e25
mov eax, dword [esp + 0x58]
movzx eax, word [ebx + eax + 2]
mov dword [esp + 0x58], eax
cmp ecx, ebp
jle 0x670c5e09
nop word [eax + eax]
mov ax, word [ebx + ecx*2 - 4]
mov word [ebx + ecx*2], ax
mov al, byte [ecx + edi - 2]
mov byte [ecx + edi], al
dec ecx
cmp ecx, ebp
jg 0x670c5df0
mov eax, dword [esp + 0x58]
mov word [ebx + edx*2 + 2], ax
mov al, byte [esp + 0x16]
mov word [ebx + edx*2], si
mov byte [edx + edi], al
mov byte [edx + edi + 1], al
add edx, 2
add ebp, 2
jmp 0x670c5e5d
cmp eax, edx
jle 0x670c5e50
mov esi, dword [esp + 0x2c]
nop dword [eax]
mov cx, word [ebx + eax*2 - 2]
mov word [ebx + eax*2], cx
mov cl, byte [eax + esi]
mov byte [eax + edi], cl
dec eax
cmp eax, edx
jg 0x670c5e30
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x16]
mov word [ebx + edx*2], si
mov byte [edx + edi], al
inc edx
inc ebp
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x48], eax
cmp eax, ecx
jl 0x670c5d30
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
add eax, 8
mov dword [esp + 0x44], eax
cmp dword [eax], 0
lea eax, [ebp - 1]
jne 0x670c5d07
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
test ecx, ecx
jle 0x670c5eb2
inc eax
cmp eax, ebp
jge 0x670c5eb2
mov edx, dword [esp + 0x50]
cmp word [ebx + eax*2], dx
cmove ecx, eax
inc eax
cmp eax, ebp
jl 0x670c5ea2
mov dword [esp + 0x4c], ecx
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
mov edx, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [edx]
mov ecx, dword [eax]
mov al, byte [esi + 0x14]
and al, 1
movzx eax, al
push eax
lea eax, [esi + 0x2c]
push eax
push dword [esi + 0x30]
push ebp
push ebx
push edx
call ecx
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 0x18
test al, al
je 0x670c6350
xor ecx, ecx
test ebp, ebp
jle 0x670c5f8a
mov edx, dword [esp + 0x3c]
nop dword [eax + eax]
mov eax, dword [edx + 0x34]
and byte [eax + ecx*2], 0xdf
mov eax, dword [edx + 0x34]
and byte [eax + ecx*2], 0xef
mov eax, dword [edx + 0x34]
and byte [eax + ecx*2], 0xf0
mov eax, dword [edx + 0x34]
and byte [eax + ecx*2], 0xbf
inc ecx
cmp ecx, ebp
jl 0x670c5f00
mov edi, 0x200d
xor edx, edx
lea esi, [edi - 1]
nop dword [eax + eax]
movzx ecx, word [ebx + edx*2]
lea eax, [ecx - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c5f4a
movzx eax, byte [ecx + 0x67321340]
jmp 0x670c5f6f
mov eax, 0x25cc
cmp cx, ax
jne 0x670c5f5b
mov eax, 1
jmp 0x670c5f6f
cmp cx, si
je 0x670c5f6a
mov eax, 0xa
cmp cx, di
jne 0x670c5f6f
mov eax, 9
cmp eax, 9
sete al
inc edx
or byte [esp + 0x23], al
cmp edx, ebp
jl 0x670c5f30
mov edi, dword [esp + 0x40]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x670c5f8e
mov dword [esp + 0x58], ecx
cmp byte [esp + 0x2b], 0
je 0x670c6341
lea edi, [esp + 0xe68]
mov dword [esp + 0x24], edi
cmp ebp, 0x200
jl 0x670c5fdc
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea eax, [ebp*2]
push eax
call esi
add esp, 4
lea ecx, [ebp*4]
mov edi, eax
mov dword [esp + 0x24], edi
push ecx
call esi
add esp, 4
mov ebp, eax
mov eax, dword [esp + 0x1c]
xor ecx, ecx
jmp 0x670c5ff0
mov eax, dword [esp + 0x1c]
lea ebp, [esp + 0x68]
xor ecx, ecx
test eax, eax
jle 0x670c600a
nop word [eax + eax]
mov word [edi + ecx*2], cx
inc ecx
cmp ecx, eax
jl 0x670c5ff0
mov ecx, eax
mov edi, ebp
mov eax, 0x7ff407f4
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x24]
jmp 0x670c600e
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x670c6038
mov eax, dword [eax]
movzx ecx, word [eax + ecx*2 - 2]
call fcn.670907f0
movzx eax, word [eax]
movzx ecx, al
lea eax, [ecx - 0xe]
cmp eax, 4
jbe 0x670c603c
cmp ecx, 2
jbe 0x670c603c
and dword [ebp], 0xfffffffb
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
js 0x670c6050
and dword [ebp + eax*4], 0xffffffef
inc eax
cmp eax, ecx
jle 0x670c6046
mov edx, dword [esp + 0x4c]
test edx, edx
js 0x670c6062
and dword [ebp + edx*4], 0xffffffdf
and dword [ebp + edx*4 + 4], 0xffffffdf
mov edx, dword [esp + 0x1c]
lea esi, [ecx + 1]
mov dword [esp + 0x58], esi
mov eax, esi
cmp esi, edx
jge 0x670c6080
and dword [ebp + eax*4], 0xffffff7f
inc eax
cmp eax, edx
jl 0x670c6073
mov eax, dword [esp + 0x38]
cmp eax, 8
je 0x670c6092
cmp eax, 0xb
jne 0x670c610d
lea edx, [ecx - 2]
mov byte [esp + 0x16], 0
cmp edx, 1
jle 0x670c6109
mov edi, dword [esp + 0x50]
mov esi, 0x25cc
nop dword [eax + eax]
movzx ecx, word [ebx + edx*2]
lea eax, [ecx - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c60ca
cmp byte [ecx + 0x67321340], 1
jmp 0x670c60cd
cmp cx, si
jne 0x670c60f7
cmp byte [esp + 0x16], 0
jne 0x670c60f2
cmp cx, di
jne 0x670c60f2
and dword [ebp + edx*4], 0xffffff7f
and dword [ebp + edx*4 + 4], 0xffffff7f
mov byte [esp + 0x16], 1
jmp 0x670c60f7
mov byte [esp + 0x16], 0
dec edx
cmp edx, 1
jg 0x670c60b0
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
jle 0x670c6120
and dword [ebp + eax*4], 0xfffffdff
inc eax
cmp eax, ecx
jl 0x670c6113
cmp byte [esp + 0x23], 0
je 0x670c615d
mov ecx, 2
cmp edx, ecx
jle 0x670c615d
mov eax, ebp
movzx edx, word [ebx + ecx*2]
cmp dx, word [esp + 0x60]
je 0x670c6144
cmp dx, word [esp + 0x64]
jne 0x670c6151
and dword [eax + 4], 0xfffffdff
and dword [eax], 0xfffffdff
mov edx, dword [esp + 0x1c]
inc ecx
add eax, 4
cmp ecx, edx
jl 0x670c6132
cmp esi, edx
jge 0x670c616e
and dword [ebp + esi*4], 0xfffffbff
inc esi
cmp esi, edx
jl 0x670c6161
mov esi, dword [esp + 0x3c]
mov edx, ebp
mov ecx, esi
mov dword [esi + 0x40], edi
call fcn.670c5040
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2c]
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], edi
cmp eax, 0x10
je 0x670c619c
cmp eax, 0xd
jne 0x670c620a
movzx ecx, word [ebx]
mov esi, 0x4ff
lea eax, [ecx - 0x900]
cmp ax, si
ja 0x670c620a
cmp byte [ecx + 0x67321340], 4
jne 0x670c620a
xor eax, eax
test edx, edx
jle 0x670c61d1
mov esi, dword [esp + 0x18]
lea ecx, [edi + 8]
cmp dword [ecx], esi
jg 0x670c61d1
inc eax
add ecx, 0x14
cmp eax, edx
jl 0x670c61c5
dec eax
cmp eax, edx
jge 0x670c620a
cmp eax, 1
jle 0x670c620a
mov ecx, dword [edi + 0x10]
dec eax
movups xmm0, xmmword [edi]
mov dword [esp + 0x60], ecx
lea edx, [eax + eax*4]
shl edx, 2
test eax, eax
jle 0x670c6202
mov ecx, edx
lea esi, [edi + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
movups xmmword [edx + edi], xmm0
mov dword [edx + edi + 0x10], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
push 0
call fcn.670c52b0
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea ecx, [esp + 0xe6c]
mov byte [esp + 0x2f], al
add esp, 4
mov eax, dword [esp + 0x24]
cmp ecx, eax
je 0x670c623b
push eax
call esi
add esp, 4
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x670c6249
push ebp
call esi
add esp, 4
cmp byte [esp + 0x2b], 0
je 0x670c634c
cmp byte [esp + 0x23], 0
je 0x670c630d
mov eax, dword [esp + 0x5c]
xor esi, esi
xor ebp, ebp
mov edx, dword [eax]
test edx, edx
je 0x670c6305
add edi, 8
mov eax, dword [edi]
movzx ecx, word [ebx + eax*2]
lea eax, [ecx - 0x900]
cmp ax, word [esp + 0x54]
ja 0x670c6290
cmp byte [ecx + 0x67321340], 9
jmp 0x670c62ac
mov eax, 0x25cc
cmp cx, ax
je 0x670c62b6
mov eax, 0x200c
cmp cx, ax
je 0x670c62ae
mov eax, 0x200d
cmp cx, ax
jne 0x670c62b6
inc esi
add edi, 0x14
cmp esi, edx
jae 0x670c6301
mov edx, dword [esp + 0x3c]
add edi, 0x14
mov ecx, dword [edx + 0x30]
mov eax, dword [ecx + esi*4]
mov dword [ecx + ebp*4], eax
mov ecx, dword [edx + 0x34]
mov ax, word [ecx + esi*2]
mov word [ecx + ebp*2], ax
mov edx, dword [edx + 0x3c]
mov eax, dword [edx + esi*8]
mov ecx, dword [edx + esi*8 + 4]
mov dword [edx + ebp*8], eax
mov dword [edx + ebp*8 + 4], ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x38]
mov eax, dword [ecx + esi*4]
inc esi
mov dword [ecx + ebp*4], eax
inc ebp
mov eax, dword [esp + 0x5c]
mov edx, dword [eax]
cmp esi, edx
jb 0x670c6274
jmp 0x670c6305
mov eax, dword [esp + 0x5c]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov dword [eax], ebp
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x34]
or byte [eax], 0x10
lea eax, [esp + 0xa68]
cmp eax, ebx
je 0x670c632c
push ebx
call esi
add esp, 4
lea eax, [esp + 0x868]
cmp eax, edi
je 0x670c633d
push edi
call esi
add esp, 4
mov al, 1
jmp 0x670c6374
mov ecx, dword [esp + 0x3c]
call fcn.670c3fa0
jmp 0x670c6311
mov edi, dword [esp + 0x40]
lea eax, [esp + 0xa68]
cmp eax, ebx
je 0x670c6361
push ebx
call esi
add esp, 4
lea eax, [esp + 0x868]
cmp eax, edi
je 0x670c6372
push edi
call esi
add esp, 4
xor al, al
mov ecx, dword [esp + 0x126c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.67284a63
add esp, 0x1260
ret