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

Disassembly:
sub esp, 0x40
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0x18], ecx
je 0x41d2f5
mov dword [eax], 0
test ecx, ecx
push ebx
push ebp
push esi
push edi
mov esi, ecx
je 0x41d58a
mov al, byte [0x45ef6c]
test al, al
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
je 0x41d324
push 0
mov ecx, 0x45ef58
call fcn.004027a0
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov edx, dword [0x45ef34]
mov dword [esp + 0x18], eax
sub eax, edx
cmp eax, 5
jbe 0x41d36d
push 0
push 0
push 0
push 0
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x41d35e
push 0
push 0xffffffffffffffff
call fcn.00401650
add esp, 8
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x18], eax
mov dword [0x45ef34], eax
mov al, byte [0x45d60c]
test al, al
jne 0x41d3b9
mov eax, dword [0x45ef28]
test eax, eax
jl 0x41d3b9
cmp dword [0x45d610], eax
jle 0x41d3b3
mov al, byte [0x45d814]
test al, al
mov byte [0x45d60c], 1
je 0x41d3b9
mov ecx, dword [0x45d6e8]
push 0xa
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x41d3b9
mov byte [0x45d814], 0
jmp 0x41d3b9
inc dword [0x45d610]
mov ecx, dword [0x45d604]
test ecx, ecx
jl 0x41d3e4
mov eax, dword [0x45d600]
jg 0x41d3ce
test eax, eax
jb 0x41d3e4
mov edx, dword [0x45ef24]
cmp edx, ecx
jg 0x41d3fc
jl 0x41d3e4
mov ecx, dword [0x45ef20]
cmp ecx, eax
jae 0x41d3fc
mov ecx, dword [0x45d608]
test ecx, ecx
jl 0x41d408
mov eax, dword [esp + 0x18]
sub eax, dword [0x45ef30]
cmp eax, ecx
jb 0x41d408
push 0
push 0xa
call fcn.00401650
add esp, 8
mov al, byte [0x45d6d8]
test al, al
je 0x41d429
push 0
push 0x8000012f
call fcn.00401650
mov al, byte [0x45d6d8]
add esp, 8
test al, al
jne 0x41d411
mov edx, dword [0x461110]
mov dword [0x45eddc], esi
mov dword [edx*4 + 0x460df0], esi
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, dword [0x461110]
mov dword [ecx*4 + 0x4606d0], eax
inc ecx
cmp ecx, 0xc8
mov dword [0x461110], ecx
jl 0x41d468
mov dword [0x461110], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov dword [0x45eed8], edi
mov dword [0x45eedc], ebx
mov dword [0x45eee0], ebp
mov dword [0x45eee4], eax
mov dword [0x45eee8], ecx
mov dword [0x45eeec], edx
cmp byte [esi], 1
je 0x41d4ac
mov ecx, esi
call fcn.0041cf80
cmp eax, 1
jne 0x41ddbd
mov al, byte [esi]
cmp al, 8
jb 0x41d60d
cmp al, 0x1e
ja 0x41d60d
mov eax, dword [0x45ef20]
mov edx, dword [0x45ef24]
add eax, 1
adc edx, 0
mov ecx, esi
mov dword [0x45ef20], eax
mov dword [0x45ef24], edx
call fcn.00411ad0
test eax, eax
je 0x41ddbd
cmp eax, 3
jne 0x41d573
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esi + 0x10]
push edx
push ebp
push ebx
push edi
lea eax, [esp + 0x2c]
push eax
push 3
call fcn.0041d2e0
mov ecx, dword [esp + 0x14]
cmp ecx, esi
je 0x41dda6
mov edx, dword [esp + 0x54]
cmp edx, 3
jne 0x41d536
test ecx, ecx
je 0x41d536
mov edi, dword [esp + 0x58]
test edi, edi
je 0x41d536
mov dword [edi], ecx
test eax, eax
je 0x41d58f
cmp eax, 7
je 0x41d58f
cmp eax, 8
je 0x41d58f
cmp eax, 5
je 0x41d58f
cmp eax, 6
je 0x41d58f
cmp edx, 3
je 0x41d58f
test ecx, ecx
jne 0x41d5fa
mov esi, dword [esi + 0x14]
test esi, esi
je 0x41d58a
cmp byte [esi], 7
jne 0x41dda6
mov esi, dword [esi + 0x14]
jmp 0x41dda6
mov esi, dword [esi + 0x14]
test esi, esi
je 0x41d58a
cmp byte [esi], 7
je 0x41d599
cmp dword [esp + 0x54], 3
jne 0x41dda6
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esi + 0x10]
push edx
push ebp
push ebx
push edi
lea eax, [esp + 0x2c]
push eax
push 3
call fcn.0041d2e0
cmp dword [esp + 0x54], 3
mov ecx, dword [esp + 0x14]
jne 0x41d5d3
test ecx, ecx
je 0x41d5d3
mov edx, dword [esp + 0x58]
test edx, edx
je 0x41d5d3
mov dword [edx], ecx
test eax, eax
je 0x41d58f
cmp eax, 7
je 0x41d58f
cmp eax, 8
je 0x41d58f
cmp eax, 5
je 0x41d58f
cmp eax, 6
je 0x41d58f
cmp dword [esp + 0x54], 3
je 0x41d58f
test ecx, ecx
je 0x41d56b
mov edx, dword [ecx + 0x18]
cmp edx, dword [esi + 0x18]
jne 0x41ddec
mov esi, ecx
jmp 0x41dda6
movzx eax, al
add eax, 0xfffffffa
cmp eax, 0xbb
ja case.0x41d625.8
movzx eax, byte [eax + 0x41df84]
jmp dword [eax*4 + 0x41df50]
mov edi, dword [0x45ef20]
mov edx, dword [0x45ef24]
add edi, 1
adc edx, 0
mov dword [0x45ef20], edi
mov dword [0x45ef24], edx
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x41d662
push 1
mov ecx, esi
call fcn.004350f0
test eax, eax
je 0x41ddbd
cmp dword [esp + 0x54], 3
je 0x41de09
mov ecx, dword [esi + 0x18]
cmp ecx, dword [eax + 0x18]
jne 0x41de09
mov esi, eax
jmp 0x41dda6
mov eax, dword [0x45ef20]
mov edx, dword [0x45ef24]
add eax, 1
adc edx, 0
mov dword [0x45ef20], eax
mov dword [0x45ef24], edx
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x41d6b4
push 1
mov ecx, esi
call fcn.004350f0
test eax, eax
je 0x41ddbd
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push ecx
push edx
push ebp
push ebx
push edi
mov ecx, eax
jmp 0x41d789
mov edx, dword [0x45ef20]
mov ecx, dword [0x45ef24]
mov eax, dword [esp + 0x28]
add edx, 1
adc ecx, 0
mov dword [0x45ef20], edx
mov dword [0x45ef24], ecx
mov edi, dword [eax + 8]
test edi, edi
jne 0x41d71c
mov al, byte [esi + 0x1c]
test al, al
mov eax, dword [0x460680]
ja 0x41d707
mov eax, 0x44f4f8
push eax
mov ecx, 0x45ebb8
call fcn.00415b00
mov edi, eax
test edi, edi
je 0x41ddbd
cmp byte [esi + 0x1c], 1
jbe 0x41d742
mov eax, dword [0x460684]
cmp byte [eax], 0
je 0x41d742
push 0x451b68
push eax
call fcn.0044e5aa
add esp, 8
test eax, eax
jne 0x41d742
mov al, 1
jmp 0x41d744
xor al, al
lea ecx, [esp + 0x20]
push ecx
push 0
push eax
mov ecx, edi
call fcn.00442500
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41dda3
push eax
mov ecx, esi
call fcn.00432c30
test eax, eax
je 0x41ddbd
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x60]
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push ebp
push ebx
push edx
push 0
push 1
call fcn.0041d2e0
test eax, eax
je 0x41d58f
cmp eax, 8
je 0x41d58f
cmp dword [esp + 0x54], 3
jne 0x41dda3
cmp eax, 7
jne 0x41d58f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret 0x20
mov ebp, dword [esi + 8]
cmp ebp, 4
mov dword [esp + 0x18], 0
jne 0x41d7fb
mov al, byte [esi + 0x1c]
test al, al
mov eax, dword [0x460680]
ja 0x41d7e7
mov eax, 0x44f4f8
push 0
push eax
call fcn.0040e6d0
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x41d986
cmp ebp, 1
je 0x41d808
test ebp, ebp
jne 0x41d954
mov al, byte [esi + 0x1c]
movzx ecx, al
sub ecx, 0
je 0x41d91e
dec ecx
je 0x41d8fb
test al, al
mov eax, dword [0x460680]
ja 0x41d82c
mov eax, 0x44f4f8
push str.Read
push eax
call fcn.0044e5aa
add esp, 8
test eax, eax
jne 0x41d8d1
mov ebp, 5
mov byte [esp + 0x1c], 0
mov cl, byte [esi + 0x1c]
xor edx, edx
xor ebx, ebx
cmp cl, 1
setb al
test al, al
mov dword [esp + 0x30], edx
mov byte [esp + 0x24], al
jne 0x41d9d6
cmp ebp, 3
je 0x41d9ce
cmp ebp, 4
je 0x41d9ce
cmp ebp, 5
je 0x41d9ce
cmp ebp, 6
je 0x41d9ce
test cl, cl
mov eax, dword [0x460680]
ja 0x41d89b
mov eax, 0x44f4f8
push eax
call fcn.00407b50
add esp, 4
test al, al
mov al, byte [esi + 0x1c]
je 0x41d9b3
test al, al
mov eax, dword [0x460680]
ja 0x41d8bd
mov eax, 0x44f4f8
push 0x10
push 0
push eax
call fcn.00444f6b
add esp, 0xc
mov ebx, eax
jmp 0x41d9d2
mov al, byte [esi + 0x1c]
test al, al
mov eax, dword [0x460680]
ja 0x41d8e2
mov eax, 0x44f4f8
push 0
push eax
call fcn.0040e6d0
xor ecx, ecx
add esp, 8
test eax, eax
setne cl
add ecx, 3
mov ebp, ecx
jmp 0x41d950
test al, al
mov eax, dword [0x460680]
ja 0x41d909
mov eax, 0x44f4f8
push 0
push 1
push 1
push 1
push eax
call fcn.00407ba0
add esp, 0x14
test eax, eax
je 0x41d928
mov ebp, 2
jmp 0x41d847
mov al, byte [esi + 0x1c]
test al, al
mov eax, dword [0x460680]
ja 0x41d939
mov eax, 0x44f4f8
push 0
push eax
call fcn.0040e6d0
xor edx, edx
add esp, 8
test eax, eax
setne dl
add edx, 3
mov ebp, edx
mov dword [esp + 0x18], eax
cmp ebp, 3
jne 0x41d97d
cmp byte [esi + 0x1c], 2
jbe 0x41d847
mov eax, dword [0x460688]
cmp byte [eax], 0x31
jne 0x41d847
mov cl, byte [eax + 1]
test cl, cl
je 0x41d9a9
jmp 0x41d847
cmp ebp, 4
jne 0x41d847
cmp byte [esi + 0x1c], 3
jbe 0x41d847
mov eax, dword [0x46068c]
cmp byte [eax], 0x31
jne 0x41d847
mov cl, byte [eax + 1]
test cl, cl
jne 0x41d847
mov byte [esp + 0x1c], 1
jmp 0x41d84c
test al, al
mov eax, dword [0x460680]
ja 0x41d9c1
mov eax, 0x44f4f8
push eax
call fcn.00444638
add esp, 4
mov ebx, eax
jmp 0x41d9d2
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x30], edx
cmp byte [esi], 6
jne 0x41d9e6
mov eax, ebx
or eax, edx
jne 0x41d9e6
mov byte [esp + 0x24], 1
cmp ebp, 3
jne 0x41da39
cmp byte [esi + 0x1c], 1
ja 0x41d9fb
mov edi, 1
jmp 0x41da8b
mov ecx, dword [0x460684]
push ecx
call fcn.0040fc80
mov edi, eax
add esp, 4
test edi, edi
jne 0x41da8b
cmp byte [esi + 0x1c], 1
mov eax, dword [0x460684]
ja 0x41da20
mov eax, 0x44f4f8
push eax
push 0
push str.If_not_blank_or_a_variable_reference__parameter_2_must_be_either_0__1__2.__The_current_thread_will_exit.
mov ecx, esi
call fcn.0041e370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
cmp ebp, 4
jne 0x41da89
cmp byte [esi + 0x1c], 2
ja 0x41da4b
mov edi, 1
jmp 0x41da8b
mov edx, dword [0x460688]
push edx
call fcn.0040fc80
mov edi, eax
add esp, 4
test edi, edi
jne 0x41da8b
cmp byte [esi + 0x1c], 2
mov eax, dword [0x460688]
ja 0x41da70
mov eax, 0x44f4f8
push eax
push 0
push str.If_not_blank_or_a_variable_reference__parameter_3_must_be_either_0__1__2.__The_current_thread_will_exit.
mov ecx, esi
call fcn.0041e370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
xor edi, edi
cmp ebp, 6
mov byte [esp + 0x12], 0
mov dword [esp + 0x14], 0
mov al, byte [esi + 0x1c]
jne 0x41db0a
cmp al, 2
mov eax, dword [0x460688]
ja 0x41daae
mov eax, 0x44f4f8
push 0x4531e0
push eax
call fcn.0044e5aa
add esp, 8
test eax, eax
je 0x41dae5
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x16]
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004140c0
jmp 0x41dc85
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x64]
lea eax, [esp + 0x16]
push eax
mov eax, dword [esp + 0x64]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00414370
jmp 0x41dc85
cmp ebp, 5
jne 0x41dbbb
cmp al, 1
mov eax, dword [0x460684]
ja 0x41db21
mov eax, 0x44f4f8
push 0x4531dc
push eax
call fcn.004453e9
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x41dca1
cmp byte [esi + 0x1c], 2
mov eax, dword [0x460688]
ja 0x41db49
mov eax, 0x44f4f8
mov dl, byte [eax]
xor cl, cl
cmp dl, 0x2a
jne 0x41db55
mov cl, 1
inc eax
cmp byte [eax], 0
je 0x41db76
test cl, cl
mov ecx, 0x4531d8
jne 0x41db68
mov ecx, 0x4531d4
push ecx
push eax
call fcn.004453e9
add esp, 8
mov ebp, eax
jmp 0x41db78
xor ebp, ebp
mov eax, dword [esp + 0x68]
push ebp
push ebx
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x1e]
push edx
mov edx, dword [esp + 0x6c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00414640
push ebx
mov edi, eax
call fcn.00445369
add esp, 4
test ebp, ebp
je 0x41dc87
push ebp
call fcn.00445369
add esp, 4
jmp 0x41dc87
cmp ebp, 4
jne 0x41dc36
test al, al
mov eax, dword [0x460680]
ja 0x41dbce
mov eax, 0x44f4f8
lea ecx, [esp + 0x13]
push ecx
push eax
call fcn.0040e6d0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x41dca1
cmp byte [esi + 0x1c], 1
mov eax, dword [0x460684]
ja 0x41dbf6
mov eax, 0x44f4f8
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push ebp
push edx
push eax
mov eax, dword [esp + 0x78]
push edi
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x7c]
lea edx, [esp + 0x2a]
push edx
mov edx, dword [esp + 0x78]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00413cf0
mov edi, eax
mov al, byte [esp + 0x13]
test al, al
je 0x41dc87
push ebp
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41dc87
test al, al
mov eax, dword [0x460680]
ja 0x41dc44
mov eax, 0x44f4f8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
push ecx
push edx
push ebx
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x7c]
push edi
push ebp
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0x32]
push edx
mov edx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x84]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004138b0
mov edi, eax
test edi, edi
je 0x41de26
cmp edi, 7
je 0x41de26
cmp edi, 8
je 0x41de26
mov al, byte [esp + 0x12]
test al, al
jne 0x41dda6
cmp dword [esp + 0x54], 3
je 0x41dde0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41d56b
mov ecx, dword [eax + 0x18]
cmp ecx, dword [esi + 0x18]
jne 0x41de09
mov esi, eax
jmp 0x41dda6
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
push edx
push eax
push ecx
mov ecx, dword [esi + 0x10]
push ebp
push ebx
push edi
lea edx, [esp + 0x2c]
push edx
push 2
call fcn.0041d2e0
mov ecx, dword [esp + 0x14]
cmp ecx, esi
je 0x41dda6
mov edx, dword [esp + 0x54]
cmp edx, 3
jne 0x41dd1b
test ecx, ecx
je 0x41dd1b
mov edi, dword [esp + 0x58]
test edi, edi
je 0x41dd1b
mov dword [edi], ecx
test eax, eax
je 0x41d58f
cmp eax, 7
je 0x41d58f
cmp eax, 8
je 0x41d58f
cmp eax, 5
je 0x41d58f
cmp eax, 6
je 0x41d58f
cmp edx, 3
je 0x41d58f
test ecx, ecx
je 0x41d56b
mov eax, dword [esi + 0x18]
cmp eax, dword [ecx + 0x18]
jne 0x41ddec
mov esi, ecx
jmp 0x41dda6
mov edx, dword [0x45ef20]
mov ecx, dword [0x45ef24]
add edx, 1
push ebp
adc ecx, 0
push ebx
mov dword [0x45ef24], ecx
push edi
mov ecx, esi
mov dword [0x45ef20], edx
call fcn.00416040
test eax, eax
je 0x41d58f
cmp dword [esp + 0x54], 3
je 0x41d58f
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x41d303
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret 0x20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x40
ret 0x20
mov eax, dword [esp + 0x54]
dec eax
neg eax
pop edi
sbb eax, eax
pop esi
and eax, 6
pop ebp
inc eax
pop ebx
add esp, 0x40
ret 0x20
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x41d58a
mov eax, dword [esp + 0x58]
test eax, eax
je 0x41d58a
pop edi
pop esi
pop ebp
mov dword [eax], ecx
mov eax, 1
pop ebx
add esp, 0x40
ret 0x20
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x41d58a
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, 1
pop ebx
add esp, 0x40
ret 0x20
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 0x40
ret 0x20
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x40
ret 0x20
mov ecx, dword [0x45c5a0]
cmp word [ecx], 0
jne 0x41de77
mov eax, dword [0x45fc9c]
test eax, eax
jne 0x41de77
mov al, byte [0x45f183]
test al, al
jne 0x41de77
mov al, byte [0x45d810]
test al, al
je case.0x41d625.193
pop edi
pop esi
pop ebp
mov eax, 8
pop ebx
add esp, 0x40
ret 0x20
mov al, byte [esi + 0x1c]
test al, al
mov eax, dword [0x460680]
ja 0x41de97
mov eax, 0x44f4f8
push eax
call fcn.00407b50
add esp, 4
test al, al
mov al, byte [esi + 0x1c]
je 0x41dedb
test al, al
mov eax, dword [0x460680]
ja 0x41deb5
mov eax, 0x44f4f8
push 0x10
push 0
push eax
call fcn.0044485e
add esp, 0xc
push eax
push 0
push 9
mov ecx, 0x45ebb8
call fcn.0041e040
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
test al, al
mov eax, dword [0x460680]
ja 0x41dee9
mov eax, 0x44f4f8
push eax
call fcn.00444633
add esp, 4
push eax
push 0
push 9
mov ecx, 0x45ebb8
call fcn.0041e040
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
cmp dword [esp + 0x54], 2
je 0x41d58a
push 0x44f4f8
push 0
push str.Unexpected_end_of_block__probably_due_to_a_Gosub_without_matching_Return.__The_current_thread_will_exit.
mov ecx, esi
call fcn.0041e370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20
push 0x44f4f8
push 0
push str.This_ELSE_is_unexpected.__Please_report_this_as_a_bug.__The_current_thread_will_exit.
mov ecx, esi
call fcn.0041e370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x20