Function at 0x42c930
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x458973
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
mov eax, dword [0x476a54]
xor eax, dword [ebp + 4]
push ebx
push esi
push edi
mov esi, ecx
push fcn.00401ff0
push fcn.0040f840
push 0x138
mov dword [esp + 0x160], eax
xor edi, edi
lea eax, [esi + 0x348]
push 4
push eax
mov dword [esp + 0x60], esi
mov dword [esi], fcn.0042c1f0
mov byte [esi + 4], 0
mov byte [esi + 5], 0
mov byte [esi + 6], 0
mov dword [esi + 0x338], edi
mov dword [esi + 0x33c], edi
mov dword [esi + 0x340], edi
mov dword [esi + 0x344], edi
call fcn.0043d545
push str.Starting...
push str.UveInput::UveInput
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push str._s__:__s
mov dword [esp + 0x174], edi
mov byte [esi + 0x828], 0
mov dword [esi + 0x840], edi
mov dword [esi + 0x844], 0x3ff00000
mov dword [esi + 0x848], edi
mov dword [esi + 0x84c], edi
mov dword [esi + 0x850], edi
mov dword [esi + 0x854], edi
mov dword [esi + 0x858], edi
mov dword [esi + 0x85c], edi
mov dword [esi + 0x860], edi
mov dword [esi + 0x864], edi
mov dword [esi + 0x868], edi
mov dword [esi + 0x86c], edi
mov dword [esi + 0x870], edi
mov dword [esi + 0x874], edi
mov byte [esi + 0x878], 1
mov byte [esi + 0x879], 1
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 4]
push ecx
call fcn.00419450
xor eax, eax
xor edx, edx
mov ecx, 0x4e
lea edi, [esi + 7]
rep stosd dword es:[edi], eax
mov ecx, 0x4e
lea edi, [esi + 0x13f]
rep stosd dword es:[edi], eax
lea eax, [esi + 0x278]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
xor ecx, ecx
lea edx, [esi + 0x288]
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
add esp, 0x10
xor eax, eax
mov ecx, 0x14
lea edi, [esi + 0x2e8]
rep stosd dword es:[edi], eax
mov ecx, 0x14
lea edi, [esi + 0x298]
rep stosd dword es:[edi], eax
mov ecx, esi
mov byte [esi + 4], 1
call fcn.0042c1f0
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.._ChickenInvaders2.cfg
push pe_nt_image_headers32
mov edi, eax
mov ecx, dword [edi]
lea eax, [esp + 0x58]
push eax
push 0x45a67d
push str.bTrackKeyboard
push ecx
call ebx
test eax, eax
jle 0x42caed
cmp byte [esp + 0x50], 0x59
sete dl
mov byte [esi + 4], dl
mov al, byte [esi + 4]
test al, al
mov eax, 0x4683f4
jne 0x42cafe
mov eax, 0x4683f0
push str.._ChickenInvaders2.cfg
push eax
mov eax, dword [edi]
push str.bTrackKeyboard
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.._ChickenInvaders2.cfg
push pe_nt_image_headers32
lea ecx, [esp + 0x58]
push ecx
push 0x45a67d
mov byte [esi + 5], 1
mov edx, dword [edi]
push str.bTrackMouse
push edx
call ebx
test eax, eax
jle 0x42cb43
cmp byte [esp + 0x50], 0x59
sete al
mov byte [esi + 5], al
mov al, byte [esi + 5]
test al, al
mov eax, 0x4683f4
jne 0x42cb54
mov eax, 0x4683f0
mov ecx, dword [edi]
push str.._ChickenInvaders2.cfg
push eax
push str.bTrackMouse
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push str.._ChickenInvaders2.cfg
push pe_nt_image_headers32
lea edx, [esp + 0x58]
push edx
push 0x45a67d
mov byte [esi + 6], 1
mov eax, dword [edi]
push str.bTrackJoystick
push eax
call ebx
test eax, eax
jle 0x42cb99
cmp byte [esp + 0x50], 0x59
sete cl
mov byte [esi + 6], cl
mov al, byte [esi + 6]
test al, al
mov eax, 0x4683f4
jne 0x42cbaa
mov eax, 0x4683f0
mov edx, dword [edi]
push str.._ChickenInvaders2.cfg
push eax
push str.bTrackJoystick
push edx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [edi]
push str.._ChickenInvaders2.cfg
push pe_nt_image_headers32
lea eax, [esp + 0x58]
push eax
push 0x45a67d
push str.joystickDeadZone
push ecx
mov dword [esp + 0x30], 0x9999999a
mov dword [esp + 0x34], 0x3fc99999
call ebx
test eax, eax
jle 0x42cc17
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x54]
push 0x4683e0
push eax
call fcn.0043d665
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.0044922a
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push eax
push ecx
lea edx, [esp + 0x14]
push str._.8lf
push edx
mov byte [esp + 0x174], 1
call fcn.00414f70
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi]
add esp, 0x10
push str.._ChickenInvaders2.cfg
push ebx
push str.joystickDeadZone
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [ebx - 0x10]
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cc88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004537d5
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x40]
push 0
lea edi, [esi + 0x338]
push edi
push 0x46b370
push 0x700
push eax
call sub.DINPUT.dll_DirectInputCreateEx
test eax, eax
jge 0x42cd29
mov edx, dword [0x477970]
push 0x2d
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.DirectInputCreateEx_FASTINSTANCE__DIRECTINPUT_VERSION__IID_IDirectInput7___LPVOID_dxInput__NULL_
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [edx + 0x10]
call fcn.0040f980
mov eax, dword [eax]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 2
call fcn.004022f0
mov ecx, dword [0x477970]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cd29
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 4]
test al, al
je 0x42ceea
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
lea ebx, [esi + 0x33c]
push ebx
push 0x46b360
push 0x46b2b0
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x42cdcb
push 0x33
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__CreateDeviceEx_GUID_SysKeyboard__IID_IDirectInputDevice7___LPVOID_keyboardDevice__NULL_
push eax
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f980
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 3
call fcn.004022f0
mov edx, dword [0x477970]
mov eax, dword [edx + 0x10]
push eax
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cdcb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax]
push 0x46b3c0
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x42ce54
push 0x34
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.keyboardDevice__SetDataFormat_c_dfDIKeyboard_
push eax
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f980
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 4
call fcn.004022f0
mov edx, dword [0x477970]
mov eax, dword [edx + 0x10]
push eax
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ce54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004537d5
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebx]
mov edx, dword [ecx]
push 6
push eax
push ecx
call dword [edx + 0x34]
test eax, eax
jge 0x42ceea
mov edx, dword [0x477970]
push 0x35
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.keyboardDevice__SetCooperativeLevel_FASTWINDOWHANDLE_DISCL_FOREGROUND__DISCL_NONEXCLUSIVE_
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [edx + 0x10]
call fcn.0040f980
mov eax, dword [eax]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 5
call fcn.004022f0
mov ecx, dword [0x477970]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ceea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 5]
test al, al
je 0x42d0bc
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
lea ebx, [esi + 0x340]
push ebx
push 0x46b360
push 0x46b2c0
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x42cf8c
push 0x3b
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__CreateDeviceEx_GUID_SysMouse__IID_IDirectInputDevice7___LPVOID_mouseDevice__NULL_
push eax
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f980
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 6
call fcn.004022f0
mov edx, dword [0x477970]
mov eax, dword [edx + 0x10]
push eax
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42cf8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax]
push 0x46b3a8
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x42d015
push 0x3c
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.mouseDevice__SetDataFormat_c_dfDIMouse_
push eax
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f980
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 7
call fcn.004022f0
mov edx, dword [0x477970]
mov eax, dword [edx + 0x10]
push eax
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d015
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004537d5
mov ecx, dword [ebx]
mov edi, dword [0x477970]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx]
xor ebx, ebx
cmp byte [edi + 8], bl
sete bl
inc ebx
or ebx, 4
push ebx
push eax
push ecx
call dword [edx + 0x34]
test eax, eax
jge 0x42d0bc
mov edx, dword [0x477970]
push 0x3f
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.mouseDevice__SetCooperativeLevel_FASTWINDOWHANDLE_DISCL_FOREGROUND___uve__bRelease_DISCL_EXCLUSIVE:DISCL_NONEXCLUSIVE__
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [edx + 0x10]
call fcn.0040f980
mov eax, dword [eax]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 8
call fcn.004022f0
mov ecx, dword [0x477970]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d0bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 6]
test al, al
je 0x42d55d
mov eax, dword [esi + 0x338]
mov ecx, dword [eax]
mov ebx, 1
push ebx
push esi
push 0x42c7d0
push 4
push eax
call dword [ecx + 0x10]
test eax, eax
jge 0x42d15d
push 0x45
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__EnumDevices_DIDEVTYPE_JOYSTICK__UveInput::enumerateCallback__this__DIEDFL_ATTACHEDONLY_
push eax
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f980
mov ecx, dword [eax]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 9
call fcn.004022f0
mov edx, dword [0x477970]
mov eax, dword [edx + 0x10]
push eax
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d15d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x344]
test eax, eax
jne 0x42d198
push str.Did_not_find_any_joysticks.
push str.UveInput::UveInput
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str._s__:__s
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 4]
push ecx
call fcn.00419450
add esp, 0x10
jmp 0x42d55d
mov edx, dword [eax]
push 0x46b390
push eax
call dword [edx + 0x2c]
test eax, eax
jge 0x42d21f
mov ecx, dword [0x477970]
mov ecx, dword [ecx + 0x10]
push 0x4c
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetDataFormat_c_dfDIJoystick_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f980
mov edx, dword [eax]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xa
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d21f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004537d5
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esi + 0x344]
mov edx, dword [ecx]
push 6
push eax
push ecx
call dword [edx + 0x34]
test eax, eax
jge 0x42d2b9
mov edx, dword [0x477970]
push 0x4e
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetCooperativeLevel_FASTWINDOWHANDLE__DISCL_FOREGROUND__DISCL_NONEXCLUSIVE_
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [edx + 0x10]
call fcn.0040f980
mov eax, dword [eax]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xb
call fcn.004022f0
mov ecx, dword [0x477970]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d2b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x344]
lea edx, [esp + 0x34]
push edx
mov edi, 0x10
push 4
mov dword [esp + 0x3c], 0x18
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0xfffffc18
mov dword [esp + 0x50], 0x3e8
mov dword [esp + 0x44], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jge 0x42d375
mov ecx, dword [0x477970]
mov ecx, dword [ecx + 0x10]
push 0x59
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetProperty_DIPROP_RANGE__diprg.diph_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f980
mov edx, dword [eax]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xc
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d375
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x344]
lea edx, [esp + 0x34]
push edx
push 4
mov dword [esp + 0x44], 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jge 0x42d40c
mov ecx, dword [0x477970]
mov ecx, dword [ecx + 0x10]
push 0x5b
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetProperty_DIPROP_RANGE__diprg.diph_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f980
mov edx, dword [eax]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xd
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d40c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
fld qword [esp + 0x18]
mov dword [esp + 0x20], 0x14
fmul qword [0x467800]
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], ebx
call fcn.0043c410
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x344]
push 5
mov dword [esp + 0x30], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jge 0x42d4c6
mov ecx, dword [0x477970]
mov ecx, dword [ecx + 0x10]
push 0x65
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetProperty_DIPROP_DEADZONE__dipdz.diph_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f980
mov edx, dword [eax]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xe
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d4c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x344]
lea edx, [esp + 0x20]
push edx
push 5
mov dword [esp + 0x30], 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jge 0x42d55d
mov ecx, dword [0x477970]
mov ecx, dword [ecx + 0x10]
push 0x67
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetProperty_DIPROP_DEADZONE__dipdz.diph_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f980
mov edx, dword [eax]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push str.Error:__s_n_Statement:__s_n_Function:__s___n_File:__s_n_Line:__d
mov byte [esp + 0x180], 0xf
call fcn.004022f0
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00413110
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42d55d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [0x477970]
mov ecx, dword [eax + 0x14]
mov eax, dword [ecx + 0x10]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0xc]
fild dword [esp + 0xc]
cdq
push 0
push 0
sub eax, edx
sub esp, 0x10
sar eax, 1
mov dword [esp + 0x24], eax
fstp qword [esp + 8]
mov ecx, esi
fild dword [esp + 0x24]
fstp qword [esp]
call fcn.0042c5d0
mov ecx, dword [0x477970]
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
push ecx
push eax
push 0
push 0
lea edx, [esi + 0x82c]
push edx
call dword [sym.imp.USER32.dll_SetRect]
xor edi, edi
lea ebx, [esi + 0x348]
push edi
push str.DIK_unknown__d
push ebx
call fcn.00414f70
add esp, 0xc
inc edi
add ebx, 4
cmp edi, 0x138
jl 0x42d5c4
mov eax, str.DIK_
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42d5e7
sub eax, edx
push eax
push str.DIK_
lea ecx, [esi + 0x348]
call fcn.004021a0
mov eax, str.DIK_ESCAPE
lea ecx, [esi + 0x34c]
lea edi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d610
sub eax, edi
push eax
push str.DIK_ESCAPE
call fcn.004021a0
mov eax, str.DIK_1
lea ecx, [esi + 0x350]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d632
sub eax, edi
push eax
push str.DIK_1
call fcn.004021a0
mov eax, str.DIK_2
lea ecx, [esi + 0x354]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d654
sub eax, edi
push eax
push str.DIK_2
call fcn.004021a0
mov eax, str.DIK_3
lea ecx, [esi + 0x358]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d676
sub eax, edi
push eax
push str.DIK_3
call fcn.004021a0
mov eax, str.DIK_4
lea ecx, [esi + 0x35c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d698
sub eax, edi
push eax
push str.DIK_4
call fcn.004021a0
mov eax, str.DIK_5
lea ecx, [esi + 0x360]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d6c0
sub eax, edi
push eax
push str.DIK_5
call fcn.004021a0
mov eax, str.DIK_6
lea ecx, [esi + 0x364]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d6e2
sub eax, edi
push eax
push str.DIK_6
call fcn.004021a0
mov eax, str.DIK_7
lea ecx, [esi + 0x368]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d704
sub eax, edi
push eax
push str.DIK_7
call fcn.004021a0
mov eax, str.DIK_8
lea ecx, [esi + 0x36c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d726
sub eax, edi
push eax
push str.DIK_8
call fcn.004021a0
mov eax, str.DIK_9
lea ecx, [esi + 0x370]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d748
sub eax, edi
push eax
push str.DIK_9
call fcn.004021a0
mov eax, str.DIK_0
lea ecx, [esi + 0x374]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d770
sub eax, edi
push eax
push str.DIK_0
call fcn.004021a0
mov eax, str.DIK_MINUS
lea ecx, [esi + 0x378]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d792
sub eax, edi
push eax
push str.DIK_MINUS
call fcn.004021a0
mov eax, str.DIK_EQUALS
lea ecx, [esi + 0x37c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d7b4
sub eax, edi
push eax
push str.DIK_EQUALS
call fcn.004021a0
mov eax, str.DIK_BACK
lea ecx, [esi + 0x380]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d7d6
sub eax, edi
push eax
push str.DIK_BACK
call fcn.004021a0
mov eax, str.DIK_TAB
lea ecx, [esi + 0x384]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d7f8
sub eax, edi
push eax
push str.DIK_TAB
call fcn.004021a0
mov eax, str.DIK_Q
lea ecx, [esi + 0x388]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d820
sub eax, edi
push eax
push str.DIK_Q
call fcn.004021a0
mov eax, str.DIK_W
lea ecx, [esi + 0x38c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d842
sub eax, edi
push eax
push str.DIK_W
call fcn.004021a0
mov eax, str.DIK_E
lea ecx, [esi + 0x390]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d864
sub eax, edi
push eax
push str.DIK_E
call fcn.004021a0
mov eax, str.DIK_R
lea ecx, [esi + 0x394]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d886
sub eax, edi
push eax
push str.DIK_R
call fcn.004021a0
mov eax, str.DIK_T
lea ecx, [esi + 0x398]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d8a8
sub eax, edi
push eax
push str.DIK_T
call fcn.004021a0
mov eax, str.DIK_Y
lea ecx, [esi + 0x39c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d8d0
sub eax, edi
push eax
push str.DIK_Y
call fcn.004021a0
mov eax, str.DIK_U
lea ecx, [esi + 0x3a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d8f2
sub eax, edi
push eax
push str.DIK_U
call fcn.004021a0
mov eax, str.DIK_I
lea ecx, [esi + 0x3a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d914
sub eax, edi
push eax
push str.DIK_I
call fcn.004021a0
mov eax, str.DIK_O
lea ecx, [esi + 0x3a8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d936
sub eax, edi
push eax
push str.DIK_O
call fcn.004021a0
mov eax, str.DIK_P
lea ecx, [esi + 0x3ac]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d958
sub eax, edi
push eax
push str.DIK_P
call fcn.004021a0
mov eax, str.DIK_LBRACKET
lea ecx, [esi + 0x3b0]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d980
sub eax, edi
push eax
push str.DIK_LBRACKET
call fcn.004021a0
mov eax, str.DIK_RBRACKET
lea ecx, [esi + 0x3b4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d9a2
sub eax, edi
push eax
push str.DIK_RBRACKET
call fcn.004021a0
mov eax, str.DIK_RETURN
lea ecx, [esi + 0x3b8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d9c4
sub eax, edi
push eax
push str.DIK_RETURN
call fcn.004021a0
mov eax, str.DIK_LCONTROL
lea ecx, [esi + 0x3bc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42d9e6
sub eax, edi
push eax
push str.DIK_LCONTROL
call fcn.004021a0
mov eax, str.DIK_A
lea ecx, [esi + 0x3c0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42da08
sub eax, edi
push eax
push str.DIK_A
call fcn.004021a0
mov eax, str.DIK_S
lea ecx, [esi + 0x3c4]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42da30
sub eax, edi
push eax
push str.DIK_S
call fcn.004021a0
mov eax, str.DIK_D
lea ecx, [esi + 0x3c8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42da52
sub eax, edi
push eax
push str.DIK_D
call fcn.004021a0
mov eax, str.DIK_F
lea ecx, [esi + 0x3cc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42da74
sub eax, edi
push eax
push str.DIK_F
call fcn.004021a0
mov eax, str.DIK_G
lea ecx, [esi + 0x3d0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42da96
sub eax, edi
push eax
push str.DIK_G
call fcn.004021a0
mov eax, str.DIK_H
lea ecx, [esi + 0x3d4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dab8
sub eax, edi
push eax
push str.DIK_H
call fcn.004021a0
mov eax, str.DIK_J
lea ecx, [esi + 0x3d8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dae0
sub eax, edi
push eax
push str.DIK_J
call fcn.004021a0
mov eax, str.DIK_K
lea ecx, [esi + 0x3dc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42db02
sub eax, edi
push eax
push str.DIK_K
call fcn.004021a0
mov eax, str.DIK_L
lea ecx, [esi + 0x3e0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42db24
sub eax, edi
push eax
push str.DIK_L
call fcn.004021a0
mov eax, str.DIK_SEMICOLON
lea ecx, [esi + 0x3e4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42db46
sub eax, edi
push eax
push str.DIK_SEMICOLON
call fcn.004021a0
mov eax, str.DIK_APOSTROPHE
lea ecx, [esi + 0x3e8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42db68
sub eax, edi
push eax
push str.DIK_APOSTROPHE
call fcn.004021a0
mov eax, str.DIK_GRAVE
lea ecx, [esi + 0x3ec]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42db90
sub eax, edi
push eax
push str.DIK_GRAVE
call fcn.004021a0
mov eax, str.DIK_LSHIFT
lea ecx, [esi + 0x3f0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dbb2
sub eax, edi
push eax
push str.DIK_LSHIFT
call fcn.004021a0
mov eax, str.DIK_BACKSLASH
lea ecx, [esi + 0x3f4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dbd4
sub eax, edi
push eax
push str.DIK_BACKSLASH
call fcn.004021a0
mov eax, str.DIK_Z
lea ecx, [esi + 0x3f8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dbf6
sub eax, edi
push eax
push str.DIK_Z
call fcn.004021a0
mov eax, str.DIK_X
lea ecx, [esi + 0x3fc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dc18
sub eax, edi
push eax
push str.DIK_X
call fcn.004021a0
mov eax, str.DIK_C
lea ecx, [esi + 0x400]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dc40
sub eax, edi
push eax
push str.DIK_C
call fcn.004021a0
mov eax, str.DIK_V
lea ecx, [esi + 0x404]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dc62
sub eax, edi
push eax
push str.DIK_V
call fcn.004021a0
mov eax, str.DIK_B
lea ecx, [esi + 0x408]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dc84
sub eax, edi
push eax
push str.DIK_B
call fcn.004021a0
mov eax, str.DIK_N
lea ecx, [esi + 0x40c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dca6
sub eax, edi
push eax
push str.DIK_N
call fcn.004021a0
mov eax, str.DIK_M
lea ecx, [esi + 0x410]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dcc8
sub eax, edi
push eax
push str.DIK_M
call fcn.004021a0
mov eax, str.DIK_COMMA
lea ecx, [esi + 0x414]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dcf0
sub eax, edi
push eax
push str.DIK_COMMA
call fcn.004021a0
mov eax, str.DIK_PERIOD
lea ecx, [esi + 0x418]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dd12
sub eax, edi
push eax
push str.DIK_PERIOD
call fcn.004021a0
mov eax, str.DIK_SLASH
lea ecx, [esi + 0x41c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dd34
sub eax, edi
push eax
push str.DIK_SLASH
call fcn.004021a0
mov eax, str.DIK_RSHIFT
lea ecx, [esi + 0x420]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dd56
sub eax, edi
push eax
push str.DIK_RSHIFT
call fcn.004021a0
mov eax, str.DIK_MULTIPLY
lea ecx, [esi + 0x424]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dd78
sub eax, edi
push eax
push str.DIK_MULTIPLY
call fcn.004021a0
mov eax, str.DIK_LMENU
lea ecx, [esi + 0x428]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dda0
sub eax, edi
push eax
push str.DIK_LMENU
call fcn.004021a0
mov eax, str.DIK_SPACE
lea ecx, [esi + 0x42c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42ddc2
sub eax, edi
push eax
push str.DIK_SPACE
call fcn.004021a0
mov eax, str.DIK_CAPITAL
lea ecx, [esi + 0x430]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dde4
sub eax, edi
push eax
push str.DIK_CAPITAL
call fcn.004021a0
mov eax, str.DIK_F1
lea ecx, [esi + 0x434]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42de06
sub eax, edi
push eax
push str.DIK_F1
call fcn.004021a0
mov eax, str.DIK_F2
lea ecx, [esi + 0x438]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42de28
sub eax, edi
push eax
push str.DIK_F2
call fcn.004021a0
mov eax, str.DIK_F3
lea ecx, [esi + 0x43c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42de50
sub eax, edi
push eax
push str.DIK_F3
call fcn.004021a0
mov eax, str.DIK_F4
lea ecx, [esi + 0x440]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42de72
sub eax, edi
push eax
push str.DIK_F4
call fcn.004021a0
mov eax, str.DIK_F5
lea ecx, [esi + 0x444]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42de94
sub eax, edi
push eax
push str.DIK_F5
call fcn.004021a0
mov eax, str.DIK_F6
lea ecx, [esi + 0x448]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42deb6
sub eax, edi
push eax
push str.DIK_F6
call fcn.004021a0
mov eax, str.DIK_F7
lea ecx, [esi + 0x44c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42ded8
sub eax, edi
push eax
push str.DIK_F7
call fcn.004021a0
mov eax, str.DIK_F8
lea ecx, [esi + 0x450]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42df00
sub eax, edi
push eax
push str.DIK_F8
call fcn.004021a0
mov eax, str.DIK_F9
lea ecx, [esi + 0x454]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42df22
sub eax, edi
push eax
push str.DIK_F9
call fcn.004021a0
mov eax, str.DIK_F10
lea ecx, [esi + 0x458]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42df44
sub eax, edi
push eax
push str.DIK_F10
call fcn.004021a0
mov eax, str.DIK_NUMLOCK
lea ecx, [esi + 0x45c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42df66
sub eax, edi
push eax
push str.DIK_NUMLOCK
call fcn.004021a0
mov eax, str.DIK_SCROLL
lea ecx, [esi + 0x460]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42df88
sub eax, edi
push eax
push str.DIK_SCROLL
call fcn.004021a0
mov eax, str.DIK_NUMPAD7
lea ecx, [esi + 0x464]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dfb0
sub eax, edi
push eax
push str.DIK_NUMPAD7
call fcn.004021a0
mov eax, str.DIK_NUMPAD8
lea ecx, [esi + 0x468]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dfd2
sub eax, edi
push eax
push str.DIK_NUMPAD8
call fcn.004021a0
mov eax, str.DIK_NUMPAD9
lea ecx, [esi + 0x46c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42dff4
sub eax, edi
push eax
push str.DIK_NUMPAD9
call fcn.004021a0
mov eax, str.DIK_SUBTRACT
lea ecx, [esi + 0x470]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e016
sub eax, edi
push eax
push str.DIK_SUBTRACT
call fcn.004021a0
mov eax, str.DIK_NUMPAD4
lea ecx, [esi + 0x474]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e038
sub eax, edi
push eax
push str.DIK_NUMPAD4
call fcn.004021a0
mov eax, str.DIK_NUMPAD5
lea ecx, [esi + 0x478]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e060
sub eax, edi
push eax
push str.DIK_NUMPAD5
call fcn.004021a0
mov eax, str.DIK_NUMPAD6
lea ecx, [esi + 0x47c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e082
sub eax, edi
push eax
push str.DIK_NUMPAD6
call fcn.004021a0
mov eax, str.DIK_ADD
lea ecx, [esi + 0x480]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e0a4
sub eax, edi
push eax
push str.DIK_ADD
call fcn.004021a0
mov eax, str.DIK_NUMPAD1
lea ecx, [esi + 0x484]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e0c6
sub eax, edi
push eax
push str.DIK_NUMPAD1
call fcn.004021a0
mov eax, str.DIK_NUMPAD2
lea ecx, [esi + 0x488]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e0e8
sub eax, edi
push eax
push str.DIK_NUMPAD2
call fcn.004021a0
mov eax, str.DIK_NUMPAD3
lea ecx, [esi + 0x48c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e110
sub eax, edi
push eax
push str.DIK_NUMPAD3
call fcn.004021a0
mov eax, str.DIK_NUMPAD0
lea ecx, [esi + 0x490]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e132
sub eax, edi
push eax
push str.DIK_NUMPAD0
call fcn.004021a0
mov eax, str.DIK_DECIMAL
lea ecx, [esi + 0x494]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e154
sub eax, edi
push eax
push str.DIK_DECIMAL
call fcn.004021a0
mov eax, str.DIK_OEM_102
lea ecx, [esi + 0x4a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e176
sub eax, edi
push eax
push str.DIK_OEM_102
call fcn.004021a0
mov eax, str.DIK_F11
lea ecx, [esi + 0x4a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e198
sub eax, edi
push eax
push str.DIK_F11
call fcn.004021a0
mov eax, str.DIK_F12
lea ecx, [esi + 0x4a8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e1c0
sub eax, edi
push eax
push str.DIK_F12
call fcn.004021a0
mov eax, str.DIK_F13
lea ecx, [esi + 0x4d8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e1e2
sub eax, edi
push eax
push str.DIK_F13
call fcn.004021a0
mov eax, str.DIK_F14
lea ecx, [esi + 0x4dc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e204
sub eax, edi
push eax
push str.DIK_F14
call fcn.004021a0
mov eax, str.DIK_F15
lea ecx, [esi + 0x4e0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e226
sub eax, edi
push eax
push str.DIK_F15
call fcn.004021a0
mov eax, str.DIK_KANA
lea ecx, [esi + 0x508]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e248
sub eax, edi
push eax
push str.DIK_KANA
call fcn.004021a0
mov eax, str.DIK_ABNT_C1
lea ecx, [esi + 0x514]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e270
sub eax, edi
push eax
push str.DIK_ABNT_C1
call fcn.004021a0
mov eax, str.DIK_CONVERT
lea ecx, [esi + 0x52c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e292
sub eax, edi
push eax
push str.DIK_CONVERT
call fcn.004021a0
mov eax, str.DIK_NOCONVERT
lea ecx, [esi + 0x534]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e2b4
sub eax, edi
push eax
push str.DIK_NOCONVERT
call fcn.004021a0
mov eax, str.DIK_YEN
lea ecx, [esi + 0x53c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e2d6
sub eax, edi
push eax
push str.DIK_YEN
call fcn.004021a0
mov eax, str.DIK_ABNT_C2
lea ecx, [esi + 0x540]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e2f8
sub eax, edi
push eax
push str.DIK_ABNT_C2
call fcn.004021a0
mov eax, str.DIK_NUMPADEQUALS
lea ecx, [esi + 0x57c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e320
sub eax, edi
push eax
push str.DIK_NUMPADEQUALS
call fcn.004021a0
mov eax, str.DIK_PREVTRACK
lea ecx, [esi + 0x588]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e342
sub eax, edi
push eax
push str.DIK_PREVTRACK
call fcn.004021a0
mov eax, str.DIK_AT
lea ecx, [esi + 0x58c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e364
sub eax, edi
push eax
push str.DIK_AT
call fcn.004021a0
mov eax, str.DIK_COLON
lea ecx, [esi + 0x590]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e386
sub eax, edi
push eax
push str.DIK_COLON
call fcn.004021a0
mov eax, str.DIK_UNDERLINE
lea ecx, [esi + 0x594]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e3a8
sub eax, edi
push eax
push str.DIK_UNDERLINE
call fcn.004021a0
mov eax, str.DIK_KANJI
lea ecx, [esi + 0x598]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e3d0
sub eax, edi
push eax
push str.DIK_KANJI
call fcn.004021a0
mov eax, str.DIK_STOP
lea ecx, [esi + 0x59c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e3f2
sub eax, edi
push eax
push str.DIK_STOP
call fcn.004021a0
mov eax, str.DIK_AX
lea ecx, [esi + 0x5a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e414
sub eax, edi
push eax
push str.DIK_AX
call fcn.004021a0
mov eax, str.DIK_UNLABELED
lea ecx, [esi + 0x5a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e436
sub eax, edi
push eax
push str.DIK_UNLABELED
call fcn.004021a0
mov eax, str.DIK_NEXTTRACK
lea ecx, [esi + 0x5ac]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e458
sub eax, edi
push eax
push str.DIK_NEXTTRACK
call fcn.004021a0
mov eax, str.DIK_NUMPADENTER
lea ecx, [esi + 0x5b8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e480
sub eax, edi
push eax
push str.DIK_NUMPADENTER
call fcn.004021a0
mov eax, str.DIK_RCONTROL
lea ecx, [esi + 0x5bc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e4a2
sub eax, edi
push eax
push str.DIK_RCONTROL
call fcn.004021a0
mov eax, str.DIK_MUTE
lea ecx, [esi + 0x5c8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e4c4
sub eax, edi
push eax
push str.DIK_MUTE
call fcn.004021a0
mov eax, str.DIK_CALCULATOR
lea ecx, [esi + 0x5cc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e4e6
sub eax, edi
push eax
push str.DIK_CALCULATOR
call fcn.004021a0
mov eax, str.DIK_PLAYPAUSE
lea ecx, [esi + 0x5d0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e508
sub eax, edi
push eax
push str.DIK_PLAYPAUSE
call fcn.004021a0
mov eax, str.DIK_MEDIASTOP
lea ecx, [esi + 0x5d8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e530
sub eax, edi
push eax
push str.DIK_MEDIASTOP
call fcn.004021a0
mov eax, str.DIK_VOLUMEDOWN
lea ecx, [esi + 0x600]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e552
sub eax, edi
push eax
push str.DIK_VOLUMEDOWN
call fcn.004021a0
mov eax, str.DIK_VOLUMEUP
lea ecx, [esi + 0x608]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e574
sub eax, edi
push eax
push str.DIK_VOLUMEUP
call fcn.004021a0
mov eax, str.DIK_WEBHOME
lea ecx, [esi + 0x610]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e596
sub eax, edi
push eax
push str.DIK_WEBHOME
call fcn.004021a0
mov eax, str.DIK_NUMPADCOMMA
lea ecx, [esi + 0x614]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x42e5b8