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

Disassembly:
push ebp
push edi
mov edi, 7
push esi
push ebx
mov ebx, eax
sub esp, 0xec
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], eax
mov word [esp + 0x5c], ax
mov eax, dword [ebx]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
mov dword [esp + 0x78], eax
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
mov dword [esp + 0x70], eax
jne 0x665c3175
mov esi, dword [ebx + 0xc]
mov ebp, edx
mov edi, ecx
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
and eax, 0x20
cmp eax, 1
sbb eax, eax
and eax, 0x1a7
add eax, 0x18
mov edx, eax
and edx, 0xffffffc3
test byte [ecx + 0x38], 4
movzx ecx, word [esi + 0x18]
cmovne eax, edx
movzx edx, word [esi + 0x1a]
mov dword [esp + 0x48], ecx
mov word [esp + 0x4c], dx
movzx edx, word [esi + 0x1c]
mov word [esp + 0x46], cx
mov ecx, dword [ebp + 0x2c]
mov word [esp + 0x4e], dx
movzx edx, word [esi + 0x2a]
mov word [esp + 0x76], dx
movzx edx, word [esi + 0x28]
mov word [esp + 0x44], dx
mov edx, dword [esi]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x54], edx
movzx edx, word [esi + 0x16]
mov word [esp + 0x3a], dx
mov edx, dword [ebx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], edi
mov dword [esp], eax
lea eax, [esp + 0x80]
call fcn.665c1220
xor edx, edx
mov ebp, eax
xor eax, eax
mov word [esp + 0x5e], dx
mov word [esi + 0x12], ax
mov eax, dword [edi + 8]
movsx ebx, word [eax]
mov dword [esp + 0x58], ebx
mov eax, ebx
cmp bx, 0xa
jg 0x665c3580
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
add eax, eax
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x44]
add eax, 1
mov dword [esp + 0x60], eax
test ebp, ebp
je 0x665c36aa
mov ebx, ebp
mov ebp, esi
jmp 0x665c2f7e
cmp eax, 0xffffffff
je 0x665c2fc8
mov edi, dword [ebx + 0x24]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x20]
mov esi, eax
mov dword [esp + 0x2c], eax
mov eax, edi
and eax, ecx
mov dword [esp + 0x28], edi
and esi, edx
mov edi, eax
or edi, esi
jne 0x665c2fc8
cmp word [esp + 0x20], 0x10
sete al
and al, byte [ebx + 0xb]
mov esi, eax
jne 0x665c2fcd
mov eax, dword [esp + 0x30]
test byte [eax + 0x24], 8
je 0x665c2d21
mov esi, dword [ebx]
test byte [esi + 4], 1
je 0x665c2fc8
mov eax, dword [esp + 0x24]
movzx esi, byte [eax + 0x14]
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x36], 0
je 0x665c2d44
movzx edi, word [eax + 0x32]
sub edi, 1
cmp dword [esp + 0x48], edi
je 0x665c31e0
or esi, 1
mov edi, dword [esp + 0x24]
mov eax, esi
mov byte [edi + 0x14], al
mov eax, dword [esp + 0x40]
movzx esi, word [ebp + 0x2c]
mov dword [ebp + 0x24], eax
movzx eax, word [esp + 0x46]
mov word [ebp + 0x18], ax
movzx eax, word [esp + 0x4c]
mov word [ebp + 0x1a], ax
movzx eax, word [esp + 0x4e]
mov word [ebp + 0x1c], ax
movzx eax, word [esp + 0x44]
mov word [ebp + 0x28], ax
mov eax, dword [esp + 0x60]
cmp eax, esi
jle 0x665c2fd8
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, ebp
call fcn.66592d50
test eax, eax
jne 0x665c36a8
mov eax, dword [ebx + 0x24]
movzx edi, word [ebp + 0x28]
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x3c], eax
lea eax, [edi + 1]
mov esi, dword [ebp + 0x30]
not ecx
or edx, dword [esp + 0x50]
mov word [ebp + 0x28], ax
mov word [esp + 0x68], ax
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x54]
mov dword [esi + edi*4], ebx
and eax, ecx
mov edi, dword [esp + 0x2c]
mov dword [ebp + 4], eax
movzx eax, word [esp + 0x20]
not edi
and edx, edi
and ax, 1
mov dword [ebp], edx
mov word [esp + 0x28], ax
je 0x665c2ff0
mov eax, dword [esp + 0x1c]
movzx edi, word [esp + 0x5e]
mov edx, dword [ebx]
movzx eax, byte [eax + 0x38]
mov byte [esp + 0x28], al
shr al, 7
cmp di, 9
setg cl
and eax, ecx
mov byte [esp + 0x75], al
movsx eax, di
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 4]
and eax, 0x800
jne 0x665c3458
mov edx, dword [edx + 0x14]
test edx, edx
je 0x665c2e4c
mov edx, dword [edx]
test edx, edx
jne 0x665c3518
cmp byte [esp + 0x75], 0
jne 0x665c3680
xor eax, eax
mov word [esp + 0x28], ax
mov esi, dword [esp + 0x3c]
or esi, 4
mov dword [ebp + 0x24], esi
movzx edi, word [ebp + 0x16]
test esi, 2
jne 0x665c3080
movzx eax, word [ebp + 0x18]
movzx edx, word [ebx + 8]
add eax, 1
mov word [ebp + 0x18], ax
test dx, dx
jle 0x665c3188
mov ebx, dword [esp + 0x1c]
movzx eax, ax
mov edx, dword [ebx + 8]
add di, word [edx + eax*2]
sub di, word [edx + eax*2 - 2]
test word [esp + 0x20], 0x100
je 0x665c2eaf
add edi, 0xa
mov word [ebp + 0x16], di
mov ebx, edi
mov eax, dword [esp + 0x1c]
movsx ecx, word [eax + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x10]
movsx ecx, word [edx + 0x30]
cdq
idiv ecx
lea eax, [edi + eax + 1]
movsx edx, ax
mov eax, dword [esp + 0x2c]
call fcn.665889f0
and esi, 0x140
jne 0x665c2ef6
lea edx, [edi + 0x10]
cwde
movsx edx, dx
call fcn.665889f0
movzx esi, word [esp + 0x28]
add si, word [esp + 0x5c]
mov edx, ebp
add edi, esi
add eax, esi
mov ecx, dword [esp + 0x58]
mov word [ebp + 0x16], di
mov edi, dword [esp + 0x24]
mov word [ebp + 0x14], ax
mov eax, dword [edi + 4]
call fcn.66583ad0
mov eax, edi
mov edx, ebp
call fcn.66592ea0
mov edi, eax
mov eax, dword [ebp + 0x24]
test al, 2
cmovne bx, word [esp + 0x3a]
mov word [ebp + 0x16], bx
test al, 0x10
jne 0x665c2f4e
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x34]
cmp word [ebp + 0x18], ax
jb 0x665c31f0
movzx eax, word [esp + 0x3a]
test edi, edi
mov word [ebp + 0x16], ax
sete al
mov esi, eax
lea eax, [esp + 0x80]
call fcn.665c0df0
mov ebx, eax
test eax, eax
je 0x665c3120
mov eax, esi
test al, al
je 0x665c3120
movzx eax, word [ebx + 0xc]
mov word [esp + 0x20], ax
cmp ax, 0x100
je 0x665c2f97
test byte [ebx + 0xa], 0x80
je 0x665c2cd1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
movsx eax, word [eax + edx]
test eax, eax
js 0x665c2cc8
mov edx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [edx + 4]
lea eax, [esi + eax*4]
cmp byte [eax + 0xc], 0
je 0x665c2cd1
lea esi, [esi]
mov esi, 1
xor edi, edi
jmp 0x665c2f5e
mov eax, dword [esp + 0x40]
movzx edi, word [esp + 0x44]
mov dword [esp + 0x3c], eax
jmp 0x665c2dbf
test byte [esp + 0x20], 0x82
je 0x665c31b0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov eax, dword [ecx + 4]
or esi, 1
movsx eax, word [eax + edx]
movsx edx, word [esp + 0x5e]
mov dword [ebp + 0x24], esi
mov dword [esp + 0x2c], edx
cmp eax, 0xffffffff
je 0x665c3440
test eax, eax
js 0x665c2e68
cmp word [esp + 0x5c], 0
jne 0x665c2e68
movzx eax, word [ecx + 0x32]
mov edx, eax
sub eax, 1
cmp dword [esp + 0x48], eax
jne 0x665c2e68
test byte [ecx + 0x38], 8
jne 0x665c3440
cmp dx, 1
je 0x665c3420
mov esi, dword [esp + 0x3c]
movzx edi, word [ebp + 0x16]
or esi, 0x10001
mov dword [ebp + 0x24], esi
test esi, 2
je 0x665c2e78
nop
mov ebx, dword [esp + 0x64]
movsx ecx, di
xor eax, eax
test ebx, ebx
je 0x665c30b0
mov eax, dword [esp + 0x64]
movzx eax, word [eax + 8]
test ax, ax
jle 0x665c32c0
mov ebx, dword [esp + 0x64]
mov eax, 1
test byte [ebx + 0xa], 0x80
jne 0x665c30b0
sub edi, 0x14
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x665c30fa
mov ebx, dword [esp + 0x6c]
movzx edx, word [ebx + 8]
test dx, dx
jle 0x665c32b8
lea ebx, [edi - 0x14]
mov word [esp + 0x20], bx
mov ebx, dword [esp + 0x6c]
test byte [ebx + 0xa], 0x80
cmove di, word [esp + 0x20]
mov ebx, dword [esp + 0x64]
add eax, 1
test ebx, ebx
je 0x665c30fa
cmp word [ebx + 8], 0
jle 0x665c30fa
lea ebx, [edi - 0x14]
test dx, dx
cmovg edi, ebx
mov ebx, ecx
sub ebx, eax
cmp di, 0xa
mov eax, 0xa
cmovl edi, eax
movsx edi, di
cmp edi, ebx
cmovg edi, ebx
mov word [ebp + 0x16], di
mov ebx, edi
jmp 0x665c2eb5
mov esi, ebp
mov eax, dword [esp + 0x50]
movzx ebx, word [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov word [esi + 0x1a], bx
movzx ebx, word [esp + 0x4e]
mov dword [esi + 0x24], ecx
movzx ecx, word [esp + 0x3a]
mov dword [esi + 4], eax
movzx eax, word [esp + 0x46]
mov word [esi + 0x1c], bx
movzx ebx, word [esp + 0x76]
mov word [esi + 0x16], cx
movzx ecx, word [esp + 0x44]
mov word [esi + 0x18], ax
mov word [esi + 0x2a], bx
mov word [esi + 0x28], cx
cmp ax, bx
je 0x665c32d0
add esp, 0xec
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx + 4]
mov ebx, dword [esp + 0x34]
cmp word [ecx + ebx], 0
js 0x665c2e90
sub di, word [esp + 0x28]
add edi, edx
mov word [ebp + 0x16], di
mov ebx, edi
jmp 0x665c2eb5
movzx eax, word [esp + 0x20]
and ax, 0x100
mov word [esp + 0x28], ax
je 0x665c3210
movsx eax, word [esp + 0x5e]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
or esi, 8
xor eax, eax
mov dword [ebp + 0x24], esi
mov word [esp + 0x28], ax
jmp 0x665c2e68
or esi, 2
jmp 0x665c2d47
movsx esi, si
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov dword [esp], esi
mov eax, dword [esp + 0x24]
call fcn.665c2b90
jmp 0x665c2f4e
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x3c]
test byte [esp + 0x20], 0x24
je 0x665c35c0
or eax, 0x22
mov ecx, dword [esp + 0x1c]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [esp + 0x78]
call fcn.665b50d0
mov word [ebp + 0x1a], ax
test byte [ebx + 0xb], 1
je 0x665c36d0
movzx esi, word [ebp + 0x28]
movzx edx, word [ebp + 0x2c]
lea eax, [ebx + 0x30]
mov dword [esp + 0x6c], eax
lea ecx, [esi + 1]
mov eax, esi
cmp ecx, edx
jg 0x665c370c
add eax, 1
mov edx, dword [ebp + 0x30]
mov edi, 1
mov word [ebp + 0x28], ax
lea eax, [ebx + 0x30]
mov dword [edx + esi*4], eax
mov esi, dword [ebp + 0x24]
mov word [ebp + 0x1c], di
or esi, 0x10
mov dword [ebp + 0x24], esi
movsx eax, word [esp + 0x5e]
movzx edi, word [ebp + 0x16]
mov dword [esp + 0x2c], eax
test esi, 2
jne 0x665c36ee
mov dword [esp + 0x64], ebx
jmp 0x665c2e78
add edi, edx
jmp 0x665c30df
add edi, eax
mov eax, 1
jmp 0x665c30b0
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x48]
movzx eax, word [eax + 0x32]
add ebp, 1
cmp ebp, eax
jge 0x665c3175
cmp word [esp + 0x46], cx
jne 0x665c3175
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x38]
mov byte [esp + 0x20], al
and eax, 0xffffffc0
cmp al, 0x80
jne 0x665c3175
mov eax, dword [esp + 0x70]
test byte [eax + 0x4d], 0x40
jne 0x665c3175
mov ebx, dword [esp + 0x1c]
add ebp, ebp
mov eax, dword [ebx + 8]
lea ecx, [eax + ebp]
cmp word [ecx], 0x29
mov dword [esp + 0x20], ecx
jle 0x665c3175
movzx ebx, word [esp + 0x44]
movzx edx, word [esi + 0x2c]
lea ecx, [ebx + 1]
cmp ecx, edx
jle 0x665c3774
mov eax, dword [esp + 0x70]
mov edx, esi
call fcn.66592d50
mov edi, eax
test eax, eax
jne 0x665c3175
movzx eax, word [esi + 0x2a]
mov ebx, dword [esp + 0x1c]
movzx edx, word [esi + 0x18]
mov edi, dword [esi + 0x24]
mov word [esp + 0x28], ax
movzx eax, word [esi + 0x28]
mov word [esp + 0x44], ax
mov eax, dword [ebx + 8]
movzx ebx, word [esp + 0x44]
lea ecx, [eax + ebp]
mov dword [esp + 0x20], ecx
movzx ecx, word [esi + 0x16]
add edx, 1
or edi, 0x8000
mov word [esi + 0x18], dx
movzx edx, word [esp + 0x28]
add edx, 1
mov word [esi + 0x2a], dx
movzx edx, word [esp + 0x44]
add edx, 1
mov word [esi + 0x28], dx
mov edx, dword [esi + 0x30]
movzx eax, word [eax + ebp - 2]
mov dword [edx + ebx*4], 0
mov ebx, dword [esp + 0x20]
mov dword [esi + 0x24], edi
xor edi, edi
movzx edx, word [ebx]
movzx ebx, word [esp + 0x7c]
add ecx, edx
sub ecx, eax
lea eax, [eax + ebx + 5]
sub eax, edx
mov word [esi + 0x16], cx
mov edx, dword [esp + 0x30]
cwde
mov ecx, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call fcn.665c2b90
movzx eax, word [esp + 0x3a]
mov word [esi + 0x16], ax
movzx eax, word [esp + 0x46]
mov word [esi + 0x18], ax
movzx eax, word [esp + 0x76]
mov word [esi + 0x2a], ax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x24], eax
jmp 0x665c3175
cmp byte [ecx + 0x36], 0
je 0x665c3061
cmp word [esp + 0x20], 2
jne 0x665c3061
lea esi, [esi]
lea esi, [esi]
mov esi, dword [esp + 0x3c]
or esi, 0x1001
mov dword [ebp + 0x24], esi
jmp 0x665c2e68
movzx eax, word [esp + 0x68]
cmp ax, 1
jbe 0x665c3726
lea edi, [esi + eax*4 - 4]
mov ecx, 0x2e
mov eax, dword [esi]
test eax, eax
je 0x665c3480
cmp dword [eax], edx
mov eax, 0
cmove ecx, eax
add esi, 4
cmp esi, edi
jne 0x665c3470
mov word [esp + 0x28], cx
cmp byte [esp + 0x75], 0
je 0x665c2e5e
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov eax, dword [eax + 8]
movzx edi, word [eax + edx]
mov eax, dword [esp + 0x2c]
lea esi, [ecx + eax]
xor eax, eax
cmp ecx, 0xa
jle 0x665c34f1
mov eax, ecx
cdq
test edx, edx
je 0x665c36fa
bsr ecx, edx
xor ecx, 0x1f
mov dword [esp + 0x68], ecx
mov ecx, 0x3c
sub ecx, dword [esp + 0x68]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x665c34de
mov eax, edx
and eax, 7
lea ecx, [ecx + ecx*4]
movzx eax, word [eax + eax + 0x66689498]
lea eax, [eax + ecx*2 - 3]
cwde
mov ecx, dword [esp + 0x3c]
movsx edx, di
lea edx, [eax + edx + 0xa]
mov eax, ecx
or eax, 0x100000
cmp edx, esi
cmovge eax, ecx
mov dword [esp + 0x3c], eax
jmp 0x665c2e5e
mov edi, edx
mov ecx, 7
mov esi, edx
sar edi, 0x1f
cmp ecx, edx
sbb eax, edi
jae 0x665c3620
test edi, edi
je 0x665c36e0
bsr eax, edi
xor eax, 0x1f
mov ecx, 0x3c
sub ecx, eax
shrd esi, edi, cl
lea eax, [ecx + ecx*4]
shr edi, cl
and ecx, 0x20
lea eax, [eax + eax + 0x28]
cmovne esi, edi
mov edx, eax
mov edi, esi
mov ecx, edx
and edi, 7
movzx eax, word [edi + edi + 0x66689498]
lea eax, [ecx + eax - 0xa]
mov word [esp + 0x28], ax
movsx ecx, ax
jmp 0x665c348c
cdq
test edx, edx
je 0x665c3668
bsr ebx, edx
xor ebx, 0x1f
mov ecx, 0x3c
sub ecx, ebx
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
lea ecx, [ecx + ecx*4]
cmovne eax, edx
and eax, 7
movzx eax, word [eax + eax + 0x66689498]
lea eax, [eax + ecx*2 - 3]
mov word [esp + 0x5e], ax
jmp 0x665c2c8c
or eax, 0x12
mov ecx, dword [esp + 0x1c]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [esp + 0x78]
call fcn.665b50d0
mov esi, dword [ebp + 0x24]
mov word [ebp + 0x1c], ax
movsx eax, word [esp + 0x5e]
mov dword [esp + 0x2c], eax
test esi, 0x20
jne 0x665c36b8
movzx edi, word [ebp + 0x16]
mov dword [esp + 0x6c], ebx
xor eax, eax
mov dword [esp + 0x64], 0
movsx ecx, di
test esi, 2
je 0x665c2e78
jmp 0x665c30b8
xor edx, 1
mov eax, edi
or eax, edx
je 0x665c373c
mov dword [esp + 0x28], ebp
mov eax, 0x1e
xor edx, edx
mov dword [esp + 0x68], ebx
lea esi, [esi]
shld edi, esi, 1
add esi, esi
mov ebx, eax
mov ebp, edx
sub eax, 0xa
cmp ecx, esi
sbb ebp, edi
jae 0x665c3640
mov edx, ebx
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x68]
jmp 0x665c3557
bsr ecx, dword [esp + 0x58]
xor ecx, 0x1f
lea ebx, [ecx + 0x20]
jmp 0x665c358f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
xor edx, edx
mov word [esp + 0x28], dx
mov esi, dword [esp + 0x2c]
mov eax, dword [eax + 8]
movzx edi, word [eax + ecx]
xor eax, eax
jmp 0x665c34f1
mov esi, ebp
xor edi, edi
jmp 0x665c3122
movzx edx, word [ebp + 0x28]
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x6c], ebx
mov eax, dword [eax + edx*4 - 8]
mov dword [esp + 0x64], eax
jmp 0x665c2e68
mov dword [esp + 0x6c], 0
mov esi, dword [ebp + 0x24]
jmp 0x665c3290
bsr eax, edx
xor eax, 0x1f
add eax, 0x20
jmp 0x665c353c
mov dword [esp + 0x64], ebx
movsx ecx, di
jmp 0x665c308d
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
mov dword [esp + 0x68], ecx
jmp 0x665c34c9
mov eax, dword [esp + 0x70]
mov edx, ebp
call fcn.66592d50
test eax, eax
jne 0x665c36a8
movzx esi, word [ebp + 0x28]
mov eax, esi
jmp 0x665c326e
cmp byte [esp + 0x75], 0
jne 0x665c374a
mov ecx, 0x2e
mov word [esp + 0x28], cx
jmp 0x665c2e5e
xor eax, eax
xor ecx, ecx
mov word [esp + 0x28], ax
jmp 0x665c348c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 8]
movzx edi, word [eax + ecx]
mov eax, dword [esp + 0x2c]
lea esi, [eax + 0x2e]
mov eax, 0x2e
mov word [esp + 0x28], ax
mov eax, 0x16
jmp 0x665c34f1
movzx edx, word [esp + 0x46]
movzx ecx, word [esp + 0x3a]
mov edi, dword [esp + 0x40]
mov word [esp + 0x28], dx
jmp 0x665c338a