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

Disassembly:
mov eax, 0x126c
call fcn.671a3700
mov eax, dword [0x6753165c]
xor eax, esp
mov dword [esp + 0x1268], eax
mov ecx, dword [esp + 0x1274]
push ebx
push esi
push edi
mov eax, dword [ecx + 0x10]
mov ebx, dword [ecx + 0xc]
mov edi, ebx
mov dword [esp + 0x30], eax
shl eax, 7
mov dword [esp + 0x20], ecx
lea esi, [ebx + 4]
mov dword [esp + 0x2c], edi
lea edx, [eax + 0x530]
mov dword [esp + 0x3c], edx
lea edx, [eax + 0x54d]
add eax, 0x53c
mov dword [esp + 0x24], edx
mov dword [esp + 0x54], eax
movzx eax, ax
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov byte [esp + 0x17], al
lea eax, [ecx + 0x2c]
movzx edx, dx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], eax
cmp dword [eax], esi
jge 0x67087a5f
mov dword [eax], esi
xor al, al
jmp 0x67088520
push ebp
lea ebp, [esp + 0xa78]
cmp esi, 0x200
jl 0x67087a7c
lea eax, [esi + esi]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
pop ecx
mov ebp, eax
lea eax, [esp + 0x878]
mov dword [esp + 0x1c], eax
cmp esi, 0x200
jl 0x67087a9b
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
pop ecx
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x1288], 0
mov eax, dword [esp + 0x34]
mov al, byte [eax + 0x672389e0]
mov byte [esp + 0x13], al
je 0x67087ace
lea edi, [ebx + 1]
mov eax, 0x25cc
mov esi, edi
mov word [ebp], ax
mov dword [esp + 0x30], edi
lea edx, [ebp + 2]
mov dword [esp + 0x38], esi
jmp 0x67087ad6
mov edx, ebp
mov dword [esp + 0x38], ebx
mov esi, ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
mov eax, dword [eax]
lea ecx, [eax + ecx*2]
lea eax, [ebx + ebx]
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x200c
add esp, 0xc
mov dword [esp + 0x60], eax
cmp word [ebp + edi*2 - 2], ax
jne 0x67087b0d
lea edi, [esi - 1]
mov esi, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], esi
or dword [esp + 0x20], 0xffffffff
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x5c], 0x200d
inc eax
mov dword [esp + 0x14], ebx
cmp esi, eax
je 0x6708810f
mov byte [esp + 0x44], bl
movzx ebx, word [ebp]
push ebx
call fcn.670876cb
pop ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x67087b55
cmp dword [esp + 0x34], 9
jne 0x67087ee2
cmp eax, 7
jne 0x67087ee2
and byte [esp + 0x13], cl
je 0x67087b9a
cmp esi, 2
jle 0x67087b9a
cmp bx, word [esp + 0x40]
je 0x67087b71
mov eax, 0x9f0
cmp bx, ax
jne 0x67087b9a
mov eax, dword [esp + 0x28]
cmp word [ebp + 2], ax
jne 0x67087b9a
movzx eax, word [ebp + 4]
push eax
call fcn.670876cb
pop ecx
xor ecx, ecx
xor edx, edx
inc ecx
cmp eax, 9
movzx ecx, cl
cmove ecx, edx
mov dword [esp + 0x44], ecx
jmp 0x67087b9e
mov ecx, dword [esp + 0x44]
movzx eax, cl
or ebx, 0xffffffff
add eax, eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], eax
xor eax, eax
push edi
push eax
push dword [esp + 0x24]
mov dword [esp + 0x38], eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x40]
add esp, 0xc
cmp eax, 8
je 0x67087c12
cmp eax, 0xb
je 0x67087c12
mov edx, dword [esp + 0x14]
mov esi, edx
cmp edx, edi
jge 0x67087c72
movzx eax, word [ebp + esi*2]
push eax
call fcn.670876cb
pop ecx
mov ecx, dword [esp + 0x1c]
mov byte [esi + ecx], al
xor ecx, ecx
inc ecx
cmp al, cl
jne 0x67087bfe
mov dword [esp + 0x2c], esi
jmp 0x67087c07
test ebx, ebx
jns 0x67087c07
cmp al, 4
cmove ebx, esi
inc esi
cmp esi, edi
jl 0x67087bde
mov dword [esp + 0x3c], ebx
jmp 0x67087c6e
mov edx, dword [esp + 0x14]
xor bl, bl
mov esi, edx
cmp edx, dword [esp + 0x38]
jge 0x67087c72
movzx eax, word [ebp + esi*2]
push eax
call fcn.670876cb
mov edx, dword [esp + 0x20]
pop ecx
xor ecx, ecx
inc ecx
mov byte [esi + edx], al
cmp al, cl
jne 0x67087c5c
mov dword [esp + 0x2c], esi
test bl, bl
jne 0x67087c58
mov eax, dword [esp + 0x40]
cmp word [ebp + esi*2], ax
jne 0x67087c58
xor eax, eax
mov byte [esi + edx], 8
lea ebx, [eax + 1]
jmp 0x67087c69
xor bl, bl
jmp 0x67087c69
mov ecx, dword [esp + 0x3c]
cmp al, 4
cmove ecx, esi
mov dword [esp + 0x3c], ecx
inc esi
cmp esi, edi
jl 0x67087c20
mov edx, dword [esp + 0x14]
and dword [esp + 0x38], 0
lea ecx, [edi - 1]
mov esi, ecx
push 4
pop ebx
cmp ecx, edx
jl 0x67087d22
mov eax, dword [esp + 0x1c]
mov al, byte [esi + eax]
cmp al, 1
je 0x67087c9d
cmp al, 9
jne 0x67087d0c
cmp dword [esp + 0x34], 0xf
je 0x67087d0c
cmp esi, ecx
jge 0x67087cb2
cmp al, 9
jne 0x67087cb2
mov eax, dword [esp + 0x1c]
xor ecx, ecx
inc ecx
cmp byte [esi + eax + 1], cl
je 0x67087d17
movzx eax, word [ebp + esi*2]
push eax
call fcn.670879b8
pop ecx
cmp ebx, 4
jne 0x67087cce
cmp eax, ebx
jne 0x67087cd3
mov eax, dword [esp + 0x34]
push ebx
jmp 0x67087cec
cmp ebx, 3
jne 0x67087d1c
cmp eax, 3
jne 0x67087d1c
mov eax, dword [esp + 0x34]
cmp eax, 8
je 0x67087ce6
cmp eax, 0xb
jne 0x67087cea
mov dword [esp + 0x14], esi
push 3
mov ecx, dword [esp + 0x3c]
pop ebx
cmp ecx, 2
jne 0x67087d00
cmp eax, 0xf
je 0x67087d1c
cmp eax, 0xe
je 0x67087d1c
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x38], ecx
lea ecx, [edi - 1]
dec esi
cmp esi, edx
jge 0x67087c87
jmp 0x67087d22
lea edx, [esi + 1]
jmp 0x67087d1e
mov edx, esi
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x2c]
cmp ebx, edx
jle 0x67087d76
movzx eax, word [ebp + edx*2 + 2]
mov ecx, dword [esp + 0x28]
cmp ax, cx
jne 0x67087d3d
lea eax, [edx + 1]
jmp 0x67087d4e
cmp ax, word [esp + 0x58]
jne 0x67087d76
lea eax, [edx + 2]
cmp word [ebp + eax*2], cx
jne 0x67087d76
test eax, eax
jle 0x67087d76
cmp eax, ebx
jge 0x67087d71
lea edi, [eax*2]
mov ecx, ebx
add edi, ebp
sub ecx, eax
lea esi, [edi + 2]
rep movsw word es:[edi], word [esi]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov word [ebp + ebx*2], cx
mov esi, dword [esp + 0x3c]
xor ebx, ebx
test esi, esi
jle 0x67087d92
movzx eax, word [ebp + esi*2]
push eax
call fcn.670879b8
mov edx, dword [esp + 0x18]
mov ebx, eax
pop ecx
cmp byte [esp + 0x44], 0
je 0x67087e78
test edx, edx
je 0x67087e78
inc edx
cmp edx, edi
jge 0x67087de5
mov eax, dword [esp + 0x48]
cmp word [ebp + edx*2], ax
cmovne edx, dword [esp + 0x14]
mov eax, edx
lea edx, [eax + 1]
cmp edx, edi
jge 0x67087de5
mov ecx, dword [esp + 0x4c]
cmp word [ebp + edx*2], cx
cmovne edx, eax
lea eax, [edx + 1]
mov edx, eax
cmp eax, edi
jge 0x67087de5
mov ecx, 0x200d
cmp word [ebp + eax*2], cx
jne 0x67087de5
lea edx, [eax + 1]
lea eax, [edi - 1]
cmp edx, eax
jge 0x67087e05
mov eax, dword [esp + 0x40]
cmp word [ebp + edx*2], ax
jne 0x67087e05
mov eax, dword [esp + 0x28]
cmp word [ebp + edx*2 + 2], ax
jne 0x67087e05
add edx, 2
mov eax, dword [esp + 0x34]
cmp eax, 8
je 0x67087e21
cmp eax, 0xb
je 0x67087e21
cmp eax, 9
je 0x67087e21
cmp eax, 0xf
jne 0x67087e35
mov edx, edi
jmp 0x67087e2e
cmp ebx, 4
je 0x67087e2b
cmp ebx, 5
jne 0x67087e35
lea edx, [esi + 1]
sub esi, 2
mov dword [esp + 0x3c], esi
cmp edx, 2
jle 0x67087e49
lea esi, [ebp + 4]
mov edi, ebp
lea ecx, [edx - 2]
rep movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea eax, [edx - 2]
mov word [ebp + eax*2], cx
mov ecx, dword [esp + 0x28]
mov word [ebp + edx*2 - 2], cx
or ecx, 0xffffffff
mov edx, dword [esp + 0x14]
sub edx, 2
cmp byte [esp + 0x13], 0
mov dword [esp + 0x14], edx
cmovne ecx, eax
mov dword [esp + 0x20], ecx
cmp ebx, 5
jne 0x67087e9d
lea eax, [esp + 0x30]
push eax
push esi
push ebp
call fcn.670889fb
movzx eax, word [ebp + esi*2]
push eax
call fcn.670879b8
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ebx, eax
xor ecx, ecx
inc ecx
cmp ebx, ecx
jne 0x67087ec8
movzx ecx, word [ebp + esi*2]
test esi, esi
je 0x67087ebc
sub esi, 1
mov ax, word [ebp + esi*2]
mov word [ebp + esi*2 + 2], ax
jne 0x67087ead
mov word [ebp], cx
inc edx
xor ecx, ecx
mov dword [esp + 0x14], edx
inc ecx
test edx, edx
jle 0x6708807e
push edx
push ecx
push dword [esp + 0x24]
call sub.VCRUNTIME140.dll_memset
mov edi, dword [esp + 0x3c]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [edx + eax], 6
inc edx
mov dword [esp + 0x38], edx
mov esi, edx
cmp edx, edi
jge 0x67087f2c
movzx eax, word [ebp + esi*2]
push eax
call fcn.670879b8
pop ecx
mov ecx, dword [esp + 0x1c]
mov byte [esi + ecx], al
movzx eax, word [ebp + esi*2]
cmp ax, word [esp + 0x58]
je 0x67087f1f
cmp ax, word [esp + 0x28]
jne 0x67087f23
mov byte [esi + ecx], 9
inc esi
cmp esi, edi
jl 0x67087ef9
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x67087f5d
mov ecx, edx
cmp edx, edi
jge 0x67087f53
mov esi, dword [esp + 0x40]
cmp word [ebp + ecx*2], si
mov eax, ecx
cmovne eax, ebx
inc ecx
mov ebx, eax
cmp ecx, edi
jl 0x67087f3e
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x1c]
mov word [ebx + ecx], 0x907
mov esi, edx
cmp esi, edi
jge 0x67087f9e
mov eax, dword [esp + 0x48]
cmp word [ebp + esi*2], ax
cmovne esi, dword [esp + 0x14]
mov eax, esi
lea esi, [eax + 1]
cmp esi, edi
jge 0x67087f9e
mov ecx, dword [esp + 0x4c]
cmp word [ebp + esi*2], cx
cmovne esi, eax
lea eax, [esi + 1]
mov esi, eax
cmp eax, edi
jge 0x67087f9e
mov ecx, 0x200d
cmp word [ebp + eax*2], cx
jne 0x67087f9e
lea esi, [eax + 1]
mov eax, dword [esp + 0x34]
xor ebx, ebx
mov eax, dword [eax*4 + 0x672389d4]
mov dword [esp + 0x2c], eax
cmp dword [eax], ebx
je 0x670880ea
lea ecx, [edi - 1]
cmp esi, ecx
jge 0x670880e6
mov ebx, esi
cmp esi, edi
jge 0x670880d5
lea eax, [esi + 1]
mov dword [esp + 0x28], eax
movzx eax, word [ebp + ebx*2]
push eax
call fcn.670876cb
mov edx, dword [esp + 0x30]
pop ecx
cmp eax, dword [edx]
jne 0x670880c5
mov eax, dword [esp + 0x1c]
lea ecx, [ebx + 1]
mov al, byte [eax + ecx - 1]
mov byte [esp + 0x13], al
movzx eax, al
cmp eax, dword [edx + 4]
jne 0x670880c5
lea eax, [edi - 1]
cmp ebx, eax
jge 0x67088087
mov eax, dword [esp + 0x1c]
cmp byte [eax + ebx + 1], 9
jne 0x67088087
movzx edx, word [ebp + ebx*2 + 2]
movzx eax, word [ebp + ebx*2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
cmp ecx, edx
jle 0x67088054
mov edi, dword [esp + 0x1c]
mov ax, word [ebp + ecx*2 - 4]
mov word [ebp + ecx*2], ax
mov al, byte [ecx + edi - 2]
mov byte [ecx + edi], al
dec ecx
cmp ecx, edx
jg 0x67088036
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x1c]
mov word [ebp + esi*2], ax
mov eax, dword [esp + 0x48]
mov word [ebp + esi*2 + 2], ax
mov al, byte [esp + 0x13]
mov byte [esi + ecx], al
mov byte [ecx + esi + 1], al
push 2
pop eax
add esi, eax
add edx, eax
mov dword [esp + 0x28], edx
jmp 0x670880c5
mov edi, dword [esp + 0x30]
jmp 0x67087ee6
movzx edx, word [ebp + ebx*2]
mov ecx, ebx
cmp ecx, esi
jle 0x670880b0
mov edi, dword [esp + 0x1c]
mov ax, word [ebp + ecx*2 - 2]
mov word [ebp + ecx*2], ax
mov al, byte [edi + ecx - 1]
mov byte [ecx + edi], al
dec ecx
cmp ecx, esi
jg 0x67088096
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
mov word [ebp + esi*2], dx
mov byte [esi + ecx], al
inc esi
inc dword [esp + 0x28]
inc ebx
cmp ebx, edi
jl 0x67087fd3
mov eax, dword [esp + 0x2c]
lea ecx, [edi - 1]
add eax, 8
xor ebx, ebx
mov dword [esp + 0x2c], eax
cmp dword [eax], ebx
jne 0x67087fba
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x6708810f
cmp edx, edi
jge 0x6708810f
mov esi, dword [esp + 0x40]
cmp word [ebp + edx*2], si
mov eax, edx
cmovne eax, ecx
inc edx
mov ecx, eax
cmp edx, edi
jl 0x670880fa
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x54]
mov edx, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x48], 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 edi
push ebp
push edx
call ecx
add esp, 0x18
test al, al
je 0x670884f3
mov ecx, ebx
test edi, edi
jle 0x6708816b
mov eax, dword [esi + 0x34]
and byte [eax + ecx*2], 0xdf
mov eax, dword [esi + 0x34]
and byte [eax + ecx*2], 0xef
mov eax, dword [esi + 0x34]
and byte [eax + ecx*2], 0xf0
mov eax, dword [esi + 0x34]
and byte [eax + ecx*2], 0xbf
inc ecx
cmp ecx, edi
jl 0x6708814a
mov esi, ebx
test edi, edi
jle 0x6708818c
movzx eax, word [ebp + esi*2]
push eax
call fcn.670876cb
cmp eax, 9
pop ecx
sete al
or byte [esp + 0x1b], al
inc esi
cmp esi, edi
jl 0x67088171
cmp byte [esp + 0x1280], 0
je 0x670884b0
lea esi, [esp + 0xe78]
mov dword [esp + 0x2c], esi
cmp edi, 0x200
jl 0x670881be
lea eax, [edi + edi]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
pop ecx
mov esi, eax
mov dword [esp + 0x2c], eax
lea ebx, [esp + 0x78]
cmp edi, 0x200
jl 0x670881d9
mov ecx, edi
shl ecx, 2
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
pop ecx
mov ebx, eax
xor eax, eax
test edi, edi
jle 0x670881f7
mov word [esi + eax*2], ax
inc eax
cmp eax, edi
jl 0x670881df
mov ecx, edi
mov eax, 0x7ff407f4
mov edi, ebx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x67088240
mov eax, dword [esi]
movzx eax, word [eax + ecx*2 - 2]
push eax
call fcn.6708b2ec
pop ecx
xor ecx, ecx
lea edx, [ecx + 1]
mov ecx, eax
shl edx, cl
test edx, 0x7c000
jne 0x67088243
mov ecx, dword [esi + 8]
mov eax, dword [esi]
movzx eax, word [eax + ecx*2 - 2]
push eax
call fcn.6708b2ec
pop ecx
xor ecx, ecx
lea edx, [ecx + 1]
mov ecx, eax
shl edx, cl
test dl, 7
jne 0x67088243
and dword [ebx], 0xfffffffb
mov edx, dword [esp + 0x14]
xor eax, eax
test edx, edx
js 0x67088256
and dword [ebx + eax*4], 0xffffffef
inc eax
cmp eax, edx
jle 0x6708824d
mov eax, dword [esp + 0x20]
test eax, eax
js 0x67088267
and dword [ebx + eax*4], 0xffffffdf
and dword [ebx + eax*4 + 4], 0xffffffdf
lea ecx, [edx + 1]
mov dword [esp + 0x4c], ecx
mov eax, ecx
cmp ecx, edi
jge 0x67088280
and dword [ebx + eax*4], 0xffffff7f
inc eax
cmp eax, edi
jl 0x67088274
mov eax, dword [esp + 0x34]
cmp eax, 8
je 0x6708828e
cmp eax, 0xb
jne 0x670882f1
xor eax, eax
mov byte [esp + 0x13], 0
lea esi, [edx - 2]
inc eax
cmp esi, eax
jle 0x670882ed
mov edi, dword [esp + 0x40]
movzx eax, word [ebp + esi*2]
push eax
call fcn.670876cb
pop ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x670882dc
cmp byte [esp + 0x13], 0
jne 0x670882d7
movzx eax, word [ebp + esi*2]
cmp ax, di
jne 0x670882d7
mov eax, 0xffffff7f
mov byte [esp + 0x13], cl
and dword [ebx + esi*4], eax
and dword [ebx + esi*4 + 4], eax
jmp 0x670882dc
mov byte [esp + 0x13], 0
dec esi
cmp esi, ecx
jg 0x670882a1
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
xor eax, eax
test edx, edx
jle 0x67088303
and dword [ebx + eax*4], 0xfffffdff
inc eax
cmp eax, edx
jl 0x670882f7
cmp byte [esp + 0x1b], 0
je 0x67088347
cmp edi, 2
jle 0x67088347
push 2
mov eax, ebx
pop esi
movzx edx, word [ebp + esi*2]
cmp dx, word [esp + 0x5c]
je 0x67088327
cmp dx, word [esp + 0x60]
jne 0x67088331
mov edx, 0xfffffdff
and dword [eax + 4], edx
and dword [eax], edx
inc esi
add eax, 4
cmp esi, edi
jl 0x67088314
mov esi, dword [esp + 0x24]
jmp 0x67088347
and dword [ebx + ecx*4], 0xfffffbff
inc ecx
cmp ecx, edi
jl 0x6708833f
mov eax, dword [esp + 0x2c]
push ebx
push esi
mov dword [esi + 0x40], eax
call fcn.670893d3
mov eax, dword [esi + 0x1c]
pop ecx
pop ecx
mov eax, dword [eax + 0x2c]
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], edi
cmp eax, 0x10
je 0x67088379
cmp eax, 0xd
jne 0x670883e1
movzx eax, word [ebp]
push eax
call fcn.670876cb
pop ecx
cmp eax, 4
jne 0x670883e1
mov edx, dword [esp + 0x20]
xor eax, eax
test esi, esi
jle 0x670883a6
mov edi, dword [esp + 0x14]
lea ecx, [edx + 8]
cmp dword [ecx], edi
jg 0x670883a6
inc eax
add ecx, 0x14
cmp eax, esi
jl 0x6708839a
dec eax
cmp eax, esi
jge 0x670883dd
xor ecx, ecx
inc ecx
cmp eax, ecx
jle 0x670883dd
push 5
dec eax
lea edi, [esp + 0x68]
mov esi, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
test eax, eax
jle 0x670883cf
imul ecx, eax, 0x14
lea esi, [edx + 0x14]
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
imul edi, eax, 0x14
lea esi, [esp + 0x64]
push 5
pop ecx
add edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x20]
push 0
push dword [esp + 0x4c]
push dword [esp + 0x2c]
call fcn.670890ad
mov byte [esp + 0x1f], al
lea ecx, [esp + 0xe84]
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp ecx, eax
je 0x6708840e
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
lea eax, [esp + 0x78]
cmp eax, ebx
je 0x6708841e
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
cmp byte [esp + 0x13], 0
je 0x670884f3
cmp byte [esp + 0x1b], 0
je 0x670884ba
mov eax, dword [esp + 0x54]
xor esi, esi
mov ebx, dword [eax]
test ebx, ebx
je 0x670884ac
add edi, 8
mov eax, dword [edi]
movzx eax, word [ebp + eax*2]
push eax
call fcn.670876cb
mov edx, dword [esp + 0x54]
pop ecx
cmp eax, 9
jne 0x67088462
inc edx
add edi, 0x14
cmp edx, ebx
jae 0x670884a8
mov ebx, dword [esp + 0x24]
add edi, 0x14
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + edx*4]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebx + 0x34]
mov ax, word [ecx + edx*2]
mov word [ecx + esi*2], ax
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ecx + edx*8]
mov dword [ecx + esi*8], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ecx + esi*8 + 4], eax
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx + edx*4]
inc edx
mov dword [ecx + esi*4], eax
inc esi
lea eax, [ebx + 0x2c]
mov dword [esp + 0x50], edx
mov ebx, dword [eax]
cmp edx, ebx
jb 0x67088443
jmp 0x670884ac
mov eax, dword [esp + 0x54]
mov dword [eax], esi
jmp 0x670884ba
push dword [esp + 0x24]
call fcn.67088bc9
pop ecx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x34]
or byte [eax], 0x10
lea eax, [esp + 0xa78]
cmp eax, ebp
je 0x670884d7
push ebp
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x878]
cmp ecx, eax
je 0x670884ee
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor eax, eax
inc eax
jmp 0x6708851f
lea eax, [esp + 0xa78]
cmp eax, ebp
je 0x67088506
push ebp
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x878]
cmp ecx, eax
je 0x6708851d
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor al, al
pop ebp
mov ecx, dword [esp + 0x1274]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.671a2acb
add esp, 0x126c
ret