Function at 0x45f2d0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x20c
mov eax, dword [0x512618]
push ebx
add eax, 0xffffffff
mov ebx, 0x10
cmp eax, ebx
push esi
push edi
mov byte [esp + 0xe], 0
ja case.default.0x45f2ef
jmp dword [eax*4 + 0x45ffb8]
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00458ea0
add esp, 0xc
cmp eax, 1
je 0x45f325
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x20c
ret
movzx eax, byte [esp + 0x18]
test al, al
jns 0x45f347
movzx ecx, byte [esp + 0x19]
movzx edx, byte [esp + 0x1a]
and eax, 0x7f
shl eax, 8
add eax, ecx
shl eax, 8
add eax, edx
jmp 0x45f363
movzx edx, byte [esp + 0x19]
movzx eax, al
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
movzx ecx, byte [esp + 0x1a]
imul eax, eax, 0x4b
add eax, ecx
mov ecx, dword [esp + 0x224]
movzx edx, byte [esp + 0x1b]
mov dword [ecx], eax
movzx eax, byte [esp + 0x1c]
shl edx, 8
add edx, eax
movzx eax, byte [esp + 0x1d]
mov dword [ecx + 4], edx
movzx edx, byte [esp + 0x23]
mov dword [ecx + 0x14], edx
movzx edx, byte [esp + 0x1e]
shl eax, 8
add eax, edx
mov dword [ecx + 8], 0
mov dword [ecx + 0x10], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00458ee0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx ecx, byte [esp + 0x19]
movzx edx, byte [esp + 0x1a]
movzx eax, byte [esp + 0x1b]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1d]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x224]
mov dword [eax], ecx
movzx ecx, byte [esp + 0x1c]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1f]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x1e]
shl ecx, 8
add ecx, edx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 0xffffffff
pop edi
pop esi
mov dword [eax + 0x14], 0
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00458ee0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx ecx, byte [esp + 0x19]
movzx edx, byte [esp + 0x1a]
movzx eax, byte [esp + 0x1b]
movzx esi, byte [esp + 0x1f]
add ecx, 0xfffd
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1d]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x224]
mov dword [eax], ecx
movzx ecx, byte [esp + 0x1c]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1e]
shl edx, 8
add edx, esi
mov dword [eax + 8], edx
xor edx, edx
cmp ecx, edx
mov dword [eax + 4], ecx
mov dword [eax + 0x14], edx
mov dword [eax + 0x10], 0xffffffff
jne 0x45f4c1
cmp dword [eax + 0xc], edx
je 0x45f4c1
mov dword [eax + 0xc], edx
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.004595e0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx ecx, byte [esp + 0x19]
movzx edx, byte [esp + 0x1a]
movzx eax, byte [esp + 0x1b]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1d]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x224]
mov dword [eax], ecx
movzx ecx, byte [esp + 0x1c]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1f]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x1e]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x29]
mov dword [eax + 8], ecx
movzx ecx, byte [esp + 0x28]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x23]
mov dword [eax + 0x14], ecx
movzx ecx, byte [esp + 0x22]
shl ecx, 8
pop edi
add ecx, edx
pop esi
mov dword [eax + 0x10], ecx
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0
push 0
push 0
push 1
push 0xd0
push esi
push edi
call fcn.00459640
add esp, 0x28
cmp eax, 1
jne case.default.0x45f2ef
lea ecx, [esp + 0x18]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0x82
push esi
push edi
call fcn.00459640
add esp, 0x28
cmp eax, 1
jne case.default.0x45f2ef
movzx edx, byte [esp + 0x21]
movzx eax, byte [esp + 0x22]
movzx ecx, byte [esp + 0x23]
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x224]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1b]
mov dword [eax], edx
movzx edx, byte [esp + 0x1a]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1f]
mov dword [eax + 4], edx
movzx edx, byte [esp + 0x1e]
shl edx, 8
add edx, ecx
mov dword [eax + 8], edx
jmp 0x45f41a
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
call fcn.004596c0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
mov edx, dword [0x649e64]
mov eax, dword [esp + 0x224]
movzx ecx, byte [esp + 0x19]
mov dword [eax], edx
movzx edx, byte [esp + 0x1a]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x18]
imul edx, edx, 0x1997a0
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1b]
add ecx, edx
movzx edx, byte [esp + 0x1d]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x22]
mov dword [eax + 0x14], ecx
movzx ecx, byte [esp + 0x1e]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1c]
imul ecx, ecx, 0x1997a0
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1f]
add edx, ecx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], edx
mov edx, dword [0x649c40]
add dword [0x649e64], edx
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x21c]
mov dword [esp + 0x10], eax
push ebp
push 0x649c50
push esi
push edi
xor bl, bl
call fcn.004597a0
push 3
push 0x4e22e8
push 0x649c51
mov ebp, eax
call fcn.004b277c
add esp, 0x18
test eax, eax
jne 0x45f70e
mov bl, 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x14]
cmp eax, 0x1388
jle 0x45f74b
cmp byte [esp + 0x12], 0
jne 0x45f749
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x14], eax
mov eax, dword [0x649e64]
push 1
push eax
push esi
push edi
mov byte [esp + 0x22], 1
call fcn.00459ff0
add esp, 0x10
jmp 0x45f74b
xor ebp, ebp
test bl, bl
mov cl, byte [0x649c59]
je 0x45f789
movzx eax, byte [0x649c57]
movzx edx, byte [0x649c58]
sub eax, 3
shl eax, 8
add eax, edx
movzx edx, cl
shl eax, 8
add eax, edx
js 0x45f787
sub eax, dword [0x649e64]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x1000
jle 0x45f789
xor bl, bl
cmp ebp, 1
jne 0x45f8d5
test bl, bl
je 0x45f6e4
movzx eax, byte [0x649c57]
movzx edx, byte [0x649c58]
mov esi, dword [esp + 0x228]
add eax, 0xfffd
shl eax, 8
add eax, edx
movzx ecx, cl
shl eax, 8
add eax, ecx
mov dword [esi], eax
movzx eax, byte [0x649c62]
movzx edx, byte [0x649c64]
movzx ecx, byte [0x649c60]
add edx, eax
movzx eax, byte [0x649c5e]
add edx, ecx
movzx ecx, byte [0x649c5c]
add edx, eax
movzx eax, byte [0x649c65]
add edx, ecx
movzx ecx, byte [0x649c63]
shl edx, 8
add edx, eax
movzx eax, byte [0x649c61]
add edx, ecx
movzx ecx, byte [0x649c5f]
add edx, eax
movzx eax, byte [0x649c5d]
add edx, ecx
add edx, eax
mov dword [esi + 4], edx
movzx ecx, byte [0x649c66]
movzx edx, byte [0x649c67]
shl ecx, 8
add ecx, edx
mov dword [esi + 8], ecx
movzx eax, byte [0x649c68]
movzx ecx, byte [0x649c69]
shl eax, 8
add eax, ecx
mov dword [esi + 0xc], eax
movzx edx, byte [0x649c8b]
movzx eax, byte [0x649c8c]
shl edx, 8
add edx, eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x4de1f0]
fsub qword [0x4e22e0]
fmul qword [0x4db2a0]
call fcn.004b35b0
fmul qword [0x4dd118]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x14], eax
fldcw word [esp + 0x14]
fistp qword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x14], ecx
movzx edx, byte [0x649c88]
movzx eax, byte [0x649c89]
fldcw word [esp + 0x12]
mov ecx, dword [esi]
shl edx, 8
add edx, eax
mov eax, ebp
pop ebp
pop edi
mov dword [esi + 0x10], edx
pop esi
mov dword [0x649e64], ecx
pop ebx
add esp, 0x20c
ret
pop ebp
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x20c
ret
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
call fcn.00459840
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
mov edx, dword [0x649e64]
mov eax, dword [esp + 0x224]
movzx ecx, byte [esp + 0x1e]
mov dword [eax], edx
movzx edx, byte [esp + 0x1f]
shl ecx, 8
add ecx, edx
mov dword [eax + 4], ecx
xor ecx, ecx
pop edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], 0xffffffff
add dword [0x649e64], 0x100
pop esi
lea eax, [ecx + 1]
pop ebx
add esp, 0x20c
ret
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00459890
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
mov ecx, dword [0x649e64]
mov eax, dword [esp + 0x224]
movzx edx, byte [esp + 0x1e]
mov dword [eax], ecx
movzx ecx, byte [esp + 0x1f]
shl edx, 8
add edx, ecx
mov dword [eax + 4], edx
jmp 0x45f92a
mov ecx, dword [0x649e54]
test ecx, ecx
mov esi, dword [esp + 0x220]
mov edi, dword [esp + 0x21c]
jne 0x45f9cf
push 0x649c50
push esi
push edi
call fcn.004598e0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
mov ecx, dword [0x649e54]
cmp byte [0x649c6f], 1
jne 0x45fa39
movzx eax, byte [0x649c68]
movzx edx, byte [0x649c6b]
shl eax, 8
add eax, edx
movzx edx, byte [0x649c6a]
shl eax, 8
add eax, edx
movzx edx, byte [0x649c50]
shl edx, 7
add edx, ecx
cmp byte [0x649c6d], 1
movzx ecx, byte [0x649c53]
lea edx, [ecx + edx*2]
jne 0x45fa2b
shl edx, 7
add edx, eax
movzx eax, byte [0x649c52]
lea ecx, [eax + edx*2 - 0xffffff]
jmp 0x45fa5b
movzx ecx, byte [0x649c52]
shl edx, 8
add edx, eax
jmp 0x45fa59
movzx edx, byte [0x649c50]
movzx eax, byte [0x649c53]
shl edx, 7
add edx, ecx
lea ecx, [eax + edx*2]
movzx edx, byte [0x649c52]
shl ecx, 8
add ecx, edx
mov eax, dword [esp + 0x224]
mov dword [eax], ecx
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c54]
movzx ecx, byte [ecx*8 + 0x649c55]
shl edx, 8
add edx, ecx
mov dword [eax + 4], edx
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c56]
movzx ecx, byte [ecx*8 + 0x649c57]
shl edx, 8
add edx, ecx
mov dword [eax + 8], edx
mov edx, dword [0x649e54]
movzx ecx, byte [edx*8 + 0x649c58]
imul ecx, ecx, 0x101
mov dword [eax + 0xc], ecx
movzx edx, byte [0x649c71]
movzx ecx, byte [0x649c70]
shl edx, 8
add edx, ecx
mov dword [eax + 0x14], edx
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c5a]
movzx ecx, byte [ecx*8 + 0x649c5b]
shl edx, 8
add edx, ecx
mov dword [eax + 0x10], edx
mov edx, dword [0x649e54]
add edx, 0xffffffff
and edx, 1
mov dword [0x649e54], edx
cmp dword [eax + 0x14], 0x12c
jbe 0x45f39f
cmp dword [eax + 0x10], 0x64
jbe 0x45f39f
mov ecx, dword [0x649e5c]
cmp ecx, 6
jle 0x45fb5a
cmp ecx, 7
jle 0x45fb30
mov dword [0x649e5c], 7
jmp 0x45fb39
sub ecx, 1
mov dword [0x649e5c], ecx
mov eax, dword [eax]
sub eax, 0x30000
push eax
push esi
push edi
call fcn.0045a790
add esp, 0xc
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x20c
ret
cmp dword [0x649e54], 0
jne 0x45fb95
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
push 0x649c50
push ecx
push edx
call fcn.004598e0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx eax, byte [0x649c50]
movzx ecx, byte [0x649c53]
shl eax, 7
add eax, dword [0x649e54]
pop edi
lea edx, [ecx + eax*2]
movzx eax, byte [0x649c52]
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x220]
mov dword [eax], edx
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c54]
movzx ecx, byte [ecx*8 + 0x649c55]
shl edx, 8
add edx, ecx
mov dword [eax + 4], edx
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c56]
movzx ecx, byte [ecx*8 + 0x649c57]
shl edx, 8
add edx, ecx
mov dword [eax + 8], edx
mov dword [eax + 0x14], 0
mov ecx, dword [0x649e54]
movzx edx, byte [ecx*8 + 0x649c5a]
movzx ecx, byte [ecx*8 + 0x649c5b]
shl edx, 8
add edx, ecx
mov dword [eax + 0x10], edx
mov edx, dword [0x649e54]
add edx, 0xffffffff
and edx, 1
pop esi
mov dword [0x649e54], edx
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00459920
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx ecx, byte [esp + 0x1d]
movzx edx, byte [esp + 0x1e]
movzx eax, byte [esp + 0x1f]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x18]
shl ecx, 8
add ecx, eax
mov eax, dword [esp + 0x224]
mov dword [eax], ecx
movzx ecx, byte [esp + 0x19]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1a]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x1b]
shl ecx, 8
add ecx, edx
mov dword [eax + 0xc], ecx
jmp 0x45f41a
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00459960
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
cmp byte [esp + 0x18], bl
je case.default.0x45f2ef
mov eax, dword [0x649e64]
movzx ecx, byte [esp + 0x1b]
mov esi, dword [esp + 0x224]
movzx edx, byte [esp + 0x1c]
mov dword [esi], eax
movzx eax, byte [esp + 0x1d]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1e]
shl ecx, 8
add ecx, eax
movzx eax, byte [esp + 0x23]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x24]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x25]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x26]
shl eax, 8
sub eax, ecx
cmp ecx, 0xb6
lea edi, [eax + edx]
mov dword [esi + 8], ecx
mov dword [esi + 4], edi
jb 0x45fd61
mov eax, 0x68168169
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 7
mov dword [esi + 8], ecx
jmp 0x45fd6c
test ecx, ecx
jbe 0x45fd6c
mov dword [esi + 8], 1
mov eax, dword [esi + 8]
add eax, edi
mov dword [esi + 4], eax
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0xffffffff
mov ecx, dword [0x649c40]
add dword [0x649e64], ecx
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
call fcn.00459a10
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx edx, byte [esp + 0x19]
movzx eax, byte [esp + 0x1a]
movzx ecx, byte [esp + 0x1b]
movzx esi, byte [esp + 0x1f]
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x224]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1d]
mov dword [eax], edx
movzx edx, byte [esp + 0x1c]
shl edx, 8
add ecx, edx
movzx edx, byte [esp + 0x1e]
shl edx, 8
add edx, esi
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
cmp dword [0x649e50], ebx
jne 0x45f41a
add edx, ecx
mov dword [eax + 4], edx
jmp 0x45f41a
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea eax, [esp + 0x18]
push eax
push ecx
push edx
call fcn.00459a70
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx eax, byte [esp + 0x20]
movzx ecx, byte [esp + 0x21]
shl eax, 8
lea edx, [eax + ecx + 0xfffd]
movzx eax, byte [esp + 0x22]
movzx ecx, byte [esp + 0x23]
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x224]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1b]
mov dword [eax], edx
movzx edx, byte [esp + 0x1a]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1f]
mov dword [eax + 4], edx
movzx edx, byte [esp + 0x1e]
shl edx, 8
add edx, ecx
mov dword [eax + 8], edx
jmp 0x45f41a
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
call fcn.00459ab0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
movzx edx, byte [esp + 0x18]
movzx eax, byte [esp + 0x19]
movzx ecx, byte [esp + 0x1a]
add edx, 0xfffd
shl edx, 8
add edx, eax
mov eax, dword [esp + 0x224]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1c]
mov dword [eax], edx
movzx edx, byte [esp + 0x1b]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x20]
mov dword [eax + 4], edx
movzx edx, byte [esp + 0x1f]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x22]
mov dword [eax + 8], edx
movzx edx, byte [esp + 0x21]
shl edx, 8
add edx, ecx
movzx ecx, byte [esp + 0x1e]
mov dword [eax + 0xc], edx
movzx edx, byte [esp + 0x1d]
shl edx, 8
add edx, ecx
mov dword [eax + 0x10], edx
jmp 0x45f421
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
call fcn.00459af0
add esp, 0xc
cmp eax, 1
jne case.default.0x45f2ef
mov edx, dword [0x649e64]
mov eax, dword [esp + 0x224]
movzx ecx, byte [esp + 0x18]
mov dword [eax], edx
movzx edx, byte [esp + 0x19]
shl ecx, 8
add ecx, edx
movzx edx, byte [esp + 0x1b]
mov dword [eax + 4], ecx
movzx ecx, byte [esp + 0x1a]
shl ecx, 8
add ecx, edx
mov dword [eax + 8], ecx
movzx ecx, byte [esp + 0x1c]
mov dword [eax + 0x14], ecx
mov edx, dword [0x649c40]
add dword [0x649e64], edx
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x20c
ret