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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1b0
mov edi, dword [esp + 0x1c4]
lea esi, [esp + 0x8c]
push 0x124
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
lea eax, [edi + 0x2a4]
lea ecx, [edi + 0xa4]
push 0x22d8
push dword [edi + 0x8e0]
push esi
push ecx
push dword [edi + 0x814]
push dword [edi + 0x810]
push eax
call fcn.004bf6c0
add esp, 0x1c
mov esi, eax
cmp eax, 0xffffff88
ja 0x67acbf
mov edx, dword [esp + 0x1d0]
mov eax, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x1c4]
mov ecx, dword [ebp + 0x810]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x54], edx
add ecx, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x1cc]
add ecx, eax
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp dword [esp + 0x8c], 2
sete cl
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x814]
mov edx, dword [ebp + 8]
mov dword [esp + 0x6c], edx
mov edx, dword [ebp + 0xd8]
mov dword [esp + 0x70], edx
mov edx, dword [ebp + 0x8e0]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x2a4]
mov esi, dword [ebp + 0x2a8]
mov edi, dword [ebp + 0x2ac]
mov ebx, dword [ebp + 0x2b0]
mov dword [esp + 0x88], ebx
mov ebx, dword [ebp + 0x2b4]
mov dword [esp + 0x48], ebx
mov ebx, dword [ebp + 0x2b8]
mov dword [esp + 0x44], ebx
mov ebx, dword [ebp + 0x2bc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x74], esi
lea esi, [esi - 8]
mov dword [esp + 0x84], esi
lea esi, [ecx + 0x408]
mov dword [esp + 0x60], esi
lea esi, [ecx + 0xcb8]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x38], ecx
add ecx, 0x70c
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], 1
xor esi, esi
mov dword [esp + 0x10], eax
mov dword [esp], 0
mov ebx, edx
mov dword [esp + 0x14], edx
jmp 0x67a0c0
mov dword [esp], 0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0x1c4]
test eax, eax
jne 0x67aad9
mov dword [esp + 0x50], edi
cmp edx, dword [esp + 0x74]
je 0x67a110
mov ecx, dword [esp]
lea edx, [ebx + ecx*8]
cmp edx, dword [esp + 0x84]
sete al
sub edx, dword [ebp + 0x2a4]
movzx ecx, word [ebx + ecx*8 + 4]
sar edx, 3
cmp dword [ebp + 0x2cc], edx
jne 0x67a120
mov edi, ebx
lea edx, [ecx + 0xffff]
cmp dword [ebp + 0x2c8], 1
cmove ecx, edx
jmp 0x67a122
mov edi, ebx
mov ebx, 1
mov edx, dword [esp]
jmp 0x67a12c
mov edi, ebx
xor ebx, ebx
mov bl, al
add esi, ecx
mov edx, dword [esp]
inc edx
mov eax, esi
mov esi, dword [esp + 0x88]
mov ebp, dword [esp + 0x50]
sub esi, ebp
mov dword [esp + 8], ebx
test ebx, ebx
cmove esi, eax
mov dword [esp + 0x20], 0xff
mov eax, dword [esp + 0x8c]
lea ecx, [eax - 2]
cmp ecx, 2
mov dword [esp], edx
jb 0x67a170
mov ebp, esi
test eax, eax
je 0x67a1e0
cmp eax, 1
jne 0x67a1d0
mov ebp, 1
jmp 0x67a1e0
push 0x22d8
mov eax, dword [esp + 0x1c]
push eax
push esi
push ebp
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.006751d0
mov edx, dword [esp + 0x18]
add esp, 0x18
mov ebp, esi
cmp eax, 0xffffff88
ja 0x67a1e0
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x40]
call fcn.00676fd0
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, edx
test edx, edx
je 0x67a1ba
mov ecx, dword [esp + 0x110]
lea ebp, [eax + ecx]
add ebp, 3
mov edx, dword [esp]
jmp 0x67a1e0
xor ebp, ebp
nop word cs:[eax + eax]
test edx, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 4], esi
je 0x67a250
mov edi, dword [esp + 0x118]
mov dword [esp + 0x20], 0x1f
push 0x22d8
mov eax, dword [esp + 0x1c]
push eax
push edx
mov ebx, dword [esp + 0x58]
push ebx
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00674cd0
add esp, 0x18
xor esi, esi
cmp edi, 1
je 0x67a2a3
test edi, edi
jne 0x67a280
mov eax, dword [esp + 0x20]
cmp eax, 0x1c
ja 0x67a2d0
push eax
push dword [esp + 0x1c]
push 5
push 0x8d7810
call fcn.0067cdc0
add esp, 0x10
jmp 0x67a29c
add ebp, 6
xor ecx, ecx
cmp ebp, dword [esp + 0x70]
ja 0x67a2fc
mov dword [esp + 0x64], edi
mov eax, dword [esp + 8]
test eax, eax
je 0x67a09a
jmp 0x67a61f
and edi, 0xfffffffe
cmp edi, 2
jne 0x67a2a3
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x68]
call fcn.0067cd00
add esp, 0xc
mov esi, eax
cmp eax, 0xffffff88
ja 0x67a2d0
mov edx, dword [esp]
test edx, edx
jle 0x67a3ca
lea eax, [ebx + edx]
lea ecx, [ebx + 1]
cmp eax, ecx
cmova ecx, eax
sub ecx, ebx
cmp ecx, 8
jae 0x67a2de
mov edi, ebx
jmp 0x67a3c0
mov edx, dword [esp]
lea eax, [edx + edx]
lea esi, [eax + eax*4]
jmp 0x67a3cd
movd xmm0, esi
lea esi, [ecx - 8]
mov edx, esi
shr edx, 3
inc edx
cmp esi, 8
jae 0x67a309
pxor xmm1, xmm1
xor esi, esi
pxor xmm4, xmm4
jmp 0x67a36f
mov dword [esp + 0x64], edi
mov eax, dword [esp + 8]
jmp 0x67a61f
mov edi, edx
and edi, 0xfffffffe
pxor xmm1, xmm1
xor esi, esi
pxor xmm4, xmm4
nop dword [eax + eax]
movd xmm3, dword [ebx + esi]
movd xmm2, dword [ebx + esi + 4]
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm4
paddd xmm3, xmm0
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
paddd xmm2, xmm1
movd xmm0, dword [ebx + esi + 8]
movd xmm1, dword [ebx + esi + 0xc]
punpcklbw xmm0, xmm4
punpcklwd xmm0, xmm4
paddd xmm0, xmm3
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm4
paddd xmm1, xmm2
add esi, 0x10
add edi, 0xfffffffe
jne 0x67a320
mov edi, ecx
and edi, 0xfffffff8
test dl, 1
je 0x67a39c
movd xmm2, dword [ebx + esi]
movd xmm3, dword [ebx + esi + 4]
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm4
paddd xmm0, xmm2
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm4
paddd xmm1, xmm3
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd esi, xmm0
cmp ecx, edi
mov edx, dword [esp]
je 0x67a3ca
add edi, ebx
nop
movzx ecx, byte [edi]
add esi, ecx
inc edi
cmp edi, eax
jb 0x67a3c0
shr esi, 3
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x20], 0x23
push 0x22d8
mov eax, dword [esp + 0x1c]
push eax
push edx
push dword [esp + 0x54]
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00674cd0
add esp, 0x18
xor edi, edi
cmp ebx, 1
je 0x67a453
test ebx, ebx
jne 0x67a430
mov eax, dword [esp + 0x20]
cmp eax, 0x23
ja 0x67a480
push eax
push dword [esp + 0x1c]
push 6
push 0x8d786e
call fcn.0067cdc0
add esp, 0x10
jmp 0x67a44c
and ebx, 0xfffffffe
cmp ebx, 2
jne 0x67a453
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x64]
call fcn.0067cd00
add esp, 0xc
mov edi, eax
cmp eax, 0xffffff88
ja 0x67a480
mov eax, dword [esp]
test eax, eax
jle 0x67a471
mov ecx, dword [esp + 0x48]
add eax, ecx
movzx edx, byte [ecx]
movzx edx, byte [edx + 0x8d784a]
add edi, edx
inc ecx
cmp ecx, eax
jb 0x67a460
shr edi, 3
mov ecx, dword [esp]
jmp 0x67a489
mov ecx, dword [esp]
lea eax, [ecx + ecx]
lea edi, [eax + eax*4]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x20], 0x34
push 0x22d8
mov eax, dword [esp + 0x1c]
push eax
push ecx
push dword [esp + 0x50]
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00674cd0
add esp, 0x18
xor eax, eax
cmp ebx, 1
je 0x67a520
test ebx, ebx
jne 0x67a4f0
mov eax, dword [esp + 0x20]
cmp eax, 0x34
ja 0x67a550
push eax
push dword [esp + 0x1c]
push 6
push 0x8d78ec
call fcn.0067cdc0
add esp, 0x10
cmp eax, 0xffffff88
jbe 0x67a520
jmp 0x67a550
and ebx, 0xfffffffe
cmp ebx, 2
jne 0x67a520
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x60]
call fcn.0067cd00
add esp, 0xc
cmp eax, 0xffffff88
ja 0x67a550
nop word cs:[eax + eax]
mov ecx, dword [esp]
test ecx, ecx
jle 0x67a541
mov edx, dword [esp + 0x44]
add ecx, edx
nop dword [eax]
movzx ebx, byte [edx]
movzx ebx, byte [ebx + 0x8d78b6]
add eax, ebx
inc edx
cmp edx, ecx
jb 0x67a530
shr eax, 3
jmp 0x67a558
mov eax, dword [esp]
add eax, eax
lea eax, [eax + eax*4]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
mov ecx, edx
test edx, edx
je 0x67a56d
mov ecx, dword [esp + 0x1a8]
add ebp, esi
add ebp, edi
add ebp, eax
lea eax, [ecx + ebp]
add eax, 6
cmp eax, dword [esp + 0x70]
mov eax, dword [esp + 8]
ja 0x67a5a0
test eax, eax
jne 0x67a5a0
mov ebp, dword [esp + 0x1c4]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 4]
jmp 0x67a0b8
mov edx, dword [esp]
lea ecx, [ebx + edx*8]
mov dword [esp + 0x64], ecx
test edx, edx
jle 0x67a61d
mov edi, ebx
mov eax, dword [esp + 0x1c4]
sub edi, dword [eax + 0x2a4]
mov eax, dword [eax + 0x2cc]
mov dword [esp + 0xc], eax
lea edx, [edx*8]
lea esi, [ebx + 6]
xor ecx, ecx
jmp 0x67a5f3
add ecx, ebx
add edi, 8
add edx, 0xfffffff8
add esi, 8
test edx, edx
jle 0x67a300
movzx ebp, word [esi]
lea ebx, [ebp + 3]
mov eax, edi
sar eax, 3
cmp dword [esp + 0xc], eax
jne 0x67a5e0
add ebp, 0x10002
mov eax, dword [esp + 0x1c4]
cmp dword [eax + 0x2c8], 2
cmove ebx, ebp
jmp 0x67a5e0
xor ecx, ecx
mov dword [esp + 0x80], ecx
test eax, eax
setne byte [esp + 0x2e]
cmp dword [esp + 0x1d8], 0
setne byte [esp + 0x2f]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
sub ebp, edi
add ebp, 0xfffffffd
mov eax, dword [esp + 0x30]
test eax, eax
mov ecx, 0xc8
cmove ecx, eax
mov eax, dword [esp + 0x8c]
mov esi, eax
mov edx, 3
cmove esi, edx
mov dword [esp + 0x3c], esi
mov edx, 0x400
sub edx, ecx
mov esi, 0x4000
sub esi, ecx
xor ebx, ebx
mov ecx, dword [esp + 4]
cmp esi, ecx
setbe bl
cmp ecx, edx
lea edx, [edi + 3]
sbb ebx, 0
test ecx, ecx
mov edi, dword [esp + 0x50]
mov dword [esp + 0xc], edx
je 0x67a6a4
cmp eax, 1
je 0x67a6b1
test eax, eax
jne 0x67a746
mov bl, 1
push ecx
push edi
push ebp
push edx
call fcn.0067d9e0
jmp 0x67a6bc
mov bl, 1
push ecx
push edi
push ebp
push edx
call fcn.0067da60
add esp, 0x10
mov esi, eax
mov edx, dword [esp]
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x1c4]
cmp esi, 0xffffff88
ja 0x67acbf
test esi, esi
je 0x67a71e
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0xc]
add eax, esi
mov esi, eax
mov ecx, dword [esp + 0x34]
sub ecx, eax
xor ebx, ebx
cmp dword [ebp + 0xa8], 0x1a
setae al
cmp ecx, 4
jl 0x67ac7e
cmp edx, 0x7f
mov dword [esp + 0xc], esi
jae 0x67a72f
mov byte [esi], dl
test edx, edx
je 0x67a958
lea ebp, [esi + 1]
jmp 0x67a7bf
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 4]
jmp 0x67a0b8
cmp edx, 0x7eff
ja 0x67a7af
mov cl, dh
add cl, 0x80
mov byte [esi], cl
mov byte [esi + 1], dl
lea ebp, [esi + 2]
jmp 0x67a7bf
mov ecx, dword [esp + 0x10]
lea esi, [ecx + ebx]
add esi, 7
add ebx, 4
xor ecx, ecx
cmp dword [esp + 0x30], 0
setne byte [esp + 0x2d]
je 0x67a787
cmp eax, 2
jne 0x67a787
push dword [esp + 0x110]
lea eax, [esp + 0x94]
push eax
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x110]
add esi, ecx
mov eax, dword [esp + 0x34]
sub eax, esi
cmp ebx, 3
mov dword [esp + 0x7c], ecx
jne 0x67a8e5
push dword [esp + 0x38]
push dword [esp + 8]
push edi
push eax
push esi
call fcn.006771d0
jmp 0x67a8f5
mov byte [esi], 0xff
lea ecx, [edx - 0x7f00]
mov word [esi + 1], cx
lea ebp, [esi + 3]
mov bl, al
lea esi, [ebp + 1]
cmp dword [esp + 0x40], 0
je 0x67a866
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
shl eax, 6
shl ecx, 4
add ecx, eax
lea eax, [ecx + edx*4]
mov byte [ebp], al
push dword [esp + 0x1a8]
lea eax, [esp + 0x124]
push eax
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add esi, dword [esp + 0x1a8]
mov eax, dword [esp + 0x34]
sub eax, esi
push dword [esp + 0x6c]
push ebx
push dword [esp + 8]
mov ebx, dword [esp + 0x28]
push ebx
push dword [esp + 0x58]
push dword [esp + 0x70]
push dword [esp + 0x64]
push dword [esp + 0x7c]
push dword [esp + 0x64]
push dword [esp + 0x7c]
push eax
push esi
call fcn.0067d330
add esp, 0x30
cmp eax, 0xffffff89
jae 0x67ac85
add esi, eax
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x67a8a8
add ecx, eax
cmp ecx, 4
jb 0x67a8b1
jmp 0x67a8a8
mov byte [ebp], 0xfc
mov eax, dword [esp + 0x34]
sub eax, esi
push dword [esp + 0x6c]
push ebx
push edx
mov ebx, dword [esp + 0x28]
push ebx
push dword [esp + 0x58]
push dword [esp + 0x70]
push dword [esp + 0x64]
push dword [esp + 0x7c]
push dword [esp + 0x64]
push dword [esp + 0x7c]
push eax
push esi
call fcn.0067d330
add esp, 0x30
cmp eax, 0xffffff89
jae 0x67ac85
add esi, eax
mov eax, esi
sub eax, ebp
cmp eax, 4
jge 0x67a8ba
mov edx, dword [esp + 0x14]
jmp 0x67a94b
sub esi, dword [esp + 0xc]
cmp esi, 0xffffff88
mov eax, dword [esp + 8]
ja 0x67acbf
test esi, esi
mov ebp, dword [esp + 0x1c4]
je 0x67aa02
mov ebp, edi
mov edi, ebx
xor eax, eax
jmp 0x67a965
push dword [esp + 0x38]
push dword [esp + 8]
push edi
push eax
push esi
call fcn.00677940
add esp, 0x14
lea ecx, [eax - 1]
cmp ecx, 0xffffff87
ja 0x67a943
mov edx, dword [esp + 0x7c]
add edx, eax
cmp edx, dword [esp + 4]
setb cl
or byte [esp + 0x2d], cl
je 0x67a932
xor ecx, ecx
cmp edx, 0x400
setae cl
cmp edx, 0x4000
sbb ecx, 0xffffffff
add ecx, 3
cmp ebx, ecx
jae 0x67aa2c
mov bl, 1
push dword [esp + 4]
push edi
push ebp
push dword [esp + 0x18]
jmp 0x67a6aa
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
jmp 0x67a0b1
mov ebp, edi
mov esi, 1
mov al, 1
mov edi, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x2f]
and bl, byte [esp + 0x2e]
mov ecx, dword [esp + 0xc]
add ecx, esi
mov dword [esp + 0xc], ecx
mov esi, ecx
mov edx, dword [esp + 0x10]
sub esi, edx
movzx ecx, bl
lea ecx, [ecx + esi*8]
add ecx, 0xffffffec
mov word [edx], cx
shr ecx, 0x10
mov byte [edx + 2], cl
cmp esi, 0xffffff88
mov ebx, dword [esp + 0x80]
ja 0x67acbf
test esi, esi
mov edx, dword [esp]
je 0x67aa0f
mov ecx, dword [esp + 4]
add ebx, ecx
cmp esi, ebx
jae 0x67aa19
add dword [esp + 0x54], ebx
mov edi, ebp
add edi, ecx
add dword [esp + 0x48], edx
add dword [esp + 0x44], edx
add dword [esp + 0x4c], edx
xor esi, esi
cmp byte [esp + 0x3c], 0
mov ecx, dword [esp + 0x30]
cmove ecx, esi
mov dword [esp + 0x30], ecx
test al, al
mov eax, dword [esp + 0x40]
cmove eax, esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp], 0
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
jmp 0x67a94f
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 4]
jmp 0x67a0b8
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 4]
jmp 0x67aa1f
mov edx, dword [esp + 0x14]
mov esi, ecx
mov eax, dword [esp + 8]
mov ebx, edi
mov edi, ebp
jmp 0x67a0b1
mov ecx, edx
add esi, eax
cmp ebx, 5
je 0x67aa72
cmp ebx, 4
mov edx, dword [esp]
mov ebp, dword [esp + 0x1c4]
je 0x67aaa3
cmp ebx, 3
jne 0x67aac1
setne al
mov ebx, dword [esp + 4]
shl ebx, 4
shl ecx, 0xe
movzx eax, al
lea eax, [ebx + eax*4]
add eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx + 3], ax
shr eax, 0x10
mov byte [ecx + 5], al
jmp 0x67aac1
mov eax, dword [esp + 4]
shl eax, 4
mov ebx, ecx
shl ecx, 0x16
mov edx, dword [esp + 0x3c]
add edx, eax
lea eax, [ecx + edx]
add eax, 0xc
mov ecx, dword [esp + 0x10]
mov dword [ecx + 3], eax
shr ebx, 0xa
mov byte [ecx + 7], bl
mov edx, dword [esp]
mov ebp, dword [esp + 0x1c4]
jmp 0x67aac1
mov eax, dword [esp + 4]
shl eax, 4
mov ebx, ecx
shl ebx, 0x12
mov ecx, dword [esp + 0x3c]
add ecx, eax
lea eax, [ebx + ecx]
add eax, 8
mov ecx, dword [esp + 0xc]
mov dword [ecx], eax
sub esi, dword [esp + 0xc]
xor ebx, ebx
mov eax, dword [esp + 8]
cmp esi, 0xffffff88
jbe 0x67a6d8
jmp 0x67acbf
cmp dword [esp + 0x30], 0
je 0x67aaf5
push 0x408
push dword [esp + 0x6c]
push dword [esp + 0x40]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 0x78]
je 0x67ab37
mov eax, dword [esp + 0x114]
dec eax
xor esi, esi
cmp eax, 2
jb 0x67acbf
mov eax, dword [esp + 0x11c]
dec eax
cmp eax, 2
jb 0x67acbf
mov eax, dword [esp + 0x118]
add eax, 0xfffffffd
cmp eax, 0xfffffffd
ja 0x67acbf
mov eax, dword [esp + 0x54]
cmp eax, ecx
jae 0x67acb2
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x10]
sub ecx, eax
lea edi, [ecx + 3]
mov esi, 0xffffffba
cmp edi, edx
ja 0x67acbf
mov eax, dword [esp + 0x1d8]
lea eax, [eax + ecx*8]
mov esi, dword [esp + 0x10]
mov word [esi], ax
shr eax, 0x10
mov byte [esi + 2], al
lea eax, [esi + 3]
push ecx
push dword [esp + 0x58]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
cmp edi, 0xffffff88
ja 0x67ac89
add esi, edi
cmp ebx, dword [esp + 0x74]
jae 0x67ac8d
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + 0x11f0]
mov dword [esp + 0x28], eax
movsd xmm0, qword [ecx + 0x11e8]
movsd qword [esp + 0x20], xmm0
mov esi, dword [esp + 0x14]
cmp esi, ebx
jae 0x67ac96
mov ecx, dword [esp + 0x1c4]
mov eax, dword [ecx + 0x2cc]
mov edx, esi
sub edx, dword [ecx + 0x2a4]
mov dword [esp + 0x1c], ebx
jmp 0x67ac06
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x24], xmm0
add ebx, 0xfffffffd
mov dword [esp + 0x20], ebx
add edx, 8
add esi, 8
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
jae 0x67ac96
mov ebx, dword [esi]
lea edi, [ebx - 1]
movzx ebp, word [esi + 4]
mov ecx, edx
sar ecx, 3
cmp eax, ecx
jne 0x67ac3b
lea ecx, [ebp + 0xffff]
mov dword [esp], ecx
mov ecx, eax
mov eax, esi
mov esi, dword [esp + 0x1c4]
cmp dword [esi + 0x2c8], 1
mov esi, eax
mov eax, ecx
cmove ebp, dword [esp]
cmp edi, 3
jae 0x67abe1
xor ecx, ecx
test ebp, ebp
sete cl
add edi, ecx
je 0x67abf4
cmp edi, 3
jne 0x67ac59
mov ebp, dword [esp + 0x20]
lea ebx, [ebp - 1]
jmp 0x67ac61
mov ebx, dword [esp + edi*4 + 0x20]
mov ebp, dword [esp + 0x20]
cmp edi, 2
lea ecx, [esp + 0x28]
lea edi, [esp + 0x24]
cmovae ecx, edi
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebp
jmp 0x67abf0
mov esi, 0xffffffba
jmp 0x67acbf
mov esi, eax
jmp 0x67acbf
mov esi, edi
jmp 0x67acbf
mov eax, dword [esp + 0x1c8]
jmp 0x67acbd
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x11f0], eax
movq xmm0, qword [esp + 0x20]
movq qword [ecx + 0x11e8], xmm0
mov eax, dword [esp + 0x1c8]
mov esi, dword [esp + 0x10]
sub esi, eax
mov eax, esi
add esp, 0x1b0
pop esi
pop edi
pop ebx
pop ebp
ret