Function at 0x434da0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45be3e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
mov eax, dword [0x47b258]
xor eax, dword [ebp + 4]
push ebx
push esi
push edi
mov esi, ecx
push fcn.00402030
push fcn.0040ad50
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.00434660
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.0043f2b2
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 byte [esi + 0x829], 0
mov dword [esi + 0x840], edi
mov dword [esi + 0x844], 0x3fe80000
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.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041fdb0
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
mov ecx, 0x14
xor eax, eax
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.00434660
mov ebx, dword [sym.imp.kernel32.dll_GetPrivateProfileStringA]
push str.._ChickenInvaders2.cfg
push 0x100
mov edi, eax
mov ecx, dword [edi]
lea eax, [esp + 0x58]
push eax
push 0x45d66d
push str.bTrackKeyboard
push ecx
call ebx
test eax, eax
jle 0x434f64
cmp byte [esp + 0x50], 0x59
sete dl
mov byte [esi + 4], dl
mov al, byte [esi + 4]
test al, al
mov eax, 0x468f44
jne 0x434f75
mov eax, 0x468f40
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 0x100
lea ecx, [esp + 0x58]
push ecx
push 0x45d66d
mov byte [esi + 5], 1
mov edx, dword [edi]
push str.bTrackMouse
push edx
call ebx
test eax, eax
jle 0x434fba
cmp byte [esp + 0x50], 0x59
sete al
mov byte [esi + 5], al
mov al, byte [esi + 5]
test al, al
mov eax, 0x468f44
jne 0x434fcb
mov eax, 0x468f40
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 0x100
lea edx, [esp + 0x58]
push edx
push 0x45d66d
mov dword [esi + 0x840], 0
mov dword [esi + 0x844], 0x3fe80000
mov eax, dword [edi]
push str.mouseSensitivity
push eax
call ebx
test eax, eax
jle 0x435040
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x54]
push 0x46c928
push edx
call fcn.0043ffae
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [esi + 0x840], eax
mov dword [esi + 0x844], ecx
call fcn.0044baca
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x844]
mov ecx, dword [esi + 0x840]
push eax
push ecx
lea edx, [esp + 0x14]
push str._.8lf
push edx
mov byte [esp + 0x174], 1
call fcn.0041b020
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi]
add esp, 0x10
push str.._ChickenInvaders2.cfg
push eax
push str.mouseSensitivity
push ecx
call dword [sym.imp.kernel32.dll_WritePrivateProfileStringA]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x164], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4350b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push str.._ChickenInvaders2.cfg
push 0x100
lea eax, [esp + 0x58]
push eax
push 0x45d66d
mov byte [esi + 0x828], 0
mov ecx, dword [edi]
push str.bClassicMouseControl
push ecx
call ebx
test eax, eax
jle 0x4350f0
cmp byte [esp + 0x50], 0x59
sete dl
mov byte [esi + 0x828], dl
mov al, byte [esi + 0x828]
test al, al
mov eax, 0x468f44
jne 0x435104
mov eax, 0x468f40
push str.._ChickenInvaders2.cfg
push eax
mov eax, dword [edi]
push str.bClassicMouseControl
push eax
call dword [sym.imp.kernel32.dll_WritePrivateProfileStringA]
push str.._ChickenInvaders2.cfg
push 0x100
lea ecx, [esp + 0x58]
push ecx
push 0x45d66d
mov byte [esi + 6], 1
mov edx, dword [edi]
push str.bTrackJoystick
push edx
call ebx
test eax, eax
jle 0x435149
cmp byte [esp + 0x50], 0x59
sete al
mov byte [esi + 6], al
mov al, byte [esi + 6]
test al, al
mov eax, 0x468f44
jne 0x43515a
mov eax, 0x468f40
mov ecx, dword [edi]
push str.._ChickenInvaders2.cfg
push eax
push str.bTrackJoystick
push ecx
call dword [sym.imp.kernel32.dll_WritePrivateProfileStringA]
mov eax, dword [edi]
push str.._ChickenInvaders2.cfg
push 0x100
lea edx, [esp + 0x58]
push edx
push 0x45d66d
push str.joystickDeadZone
push eax
mov dword [esp + 0x30], 0x9999999a
mov dword [esp + 0x34], 0x3fc99999
call ebx
test eax, eax
jle 0x4351c7
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x54]
push 0x46c928
push edx
call fcn.0043ffae
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
call fcn.0044baca
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], 2
call fcn.0041b020
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 0x435238
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004564cc
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x40]
push 0
lea edi, [esi + 0x338]
push edi
push 0x46f0d8
push 0x700
push eax
call sub.dinput.dll_DirectInputCreateEx
test eax, eax
jge 0x4352d9
mov edx, dword [0x47c170]
push 0x31
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.0040f950
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], 3
call fcn.00402330
mov ecx, dword [0x47c170]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004130e0
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 0x4352d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 4]
test al, al
je 0x43549a
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
lea ebx, [esi + 0x33c]
push ebx
push 0x46f0c8
push 0x46f018
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x43537b
push 0x37
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__CreateDeviceEx_GUID_SysKeyboard__IID_IDirectInputDevice7___LPVOID_keyboardDevice__NULL_
push eax
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f950
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.00402330
mov edx, dword [0x47c170]
mov eax, dword [edx + 0x10]
push eax
call fcn.004130e0
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 0x43537b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax]
push 0x46f128
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x435404
push 0x38
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.keyboardDevice__SetDataFormat_c_dfDIKeyboard_
push eax
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f950
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], 5
call fcn.00402330
mov edx, dword [0x47c170]
mov eax, dword [edx + 0x10]
push eax
call fcn.004130e0
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 0x435404
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004564cc
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 0x43549a
mov edx, dword [0x47c170]
push 0x39
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.0040f950
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], 6
call fcn.00402330
mov ecx, dword [0x47c170]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004130e0
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 0x43549a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 5]
test al, al
je 0x43566c
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
lea ebx, [esi + 0x340]
push ebx
push 0x46f0c8
push 0x46f028
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x43553c
push 0x3f
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__CreateDeviceEx_GUID_SysMouse__IID_IDirectInputDevice7___LPVOID_mouseDevice__NULL_
push eax
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f950
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.00402330
mov edx, dword [0x47c170]
mov eax, dword [edx + 0x10]
push eax
call fcn.004130e0
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 0x43553c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
mov ecx, dword [eax]
push 0x46f110
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x4355c5
push 0x40
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.mouseDevice__SetDataFormat_c_dfDIMouse_
push eax
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f950
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], 8
call fcn.00402330
mov edx, dword [0x47c170]
mov eax, dword [edx + 0x10]
push eax
call fcn.004130e0
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 0x4355c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004564cc
mov ecx, dword [ebx]
mov edi, dword [0x47c170]
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 0x43566c
mov edx, dword [0x47c170]
push 0x43
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.0040f950
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], 9
call fcn.00402330
mov ecx, dword [0x47c170]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004130e0
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 0x43566c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov al, byte [esi + 6]
test al, al
je 0x435b0c
mov eax, dword [esi + 0x338]
mov ecx, dword [eax]
mov edi, 1
push edi
push esi
push 0x434c40
push 4
push eax
call dword [ecx + 0x10]
test eax, eax
jge 0x43570d
push 0x49
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.dxInput__EnumDevices_DIDEVTYPE_JOYSTICK__UveInput::enumerateCallback__this__DIEDFL_ATTACHEDONLY_
push eax
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x20]
push edx
call fcn.0040f950
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], 0xa
call fcn.00402330
mov edx, dword [0x47c170]
mov eax, dword [edx + 0x10]
push eax
call fcn.004130e0
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 0x43570d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi + 0x344]
test eax, eax
jne 0x435748
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.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 4]
push ecx
call fcn.0041fdb0
add esp, 0x10
jmp 0x435b0c
mov edx, dword [eax]
push 0x46f0f8
push eax
call dword [edx + 0x2c]
test eax, eax
jge 0x4357cf
mov ecx, dword [0x47c170]
mov ecx, dword [ecx + 0x10]
push 0x50
push str.engineUveInput.cpp
push str.UveInput::UveInput
push str.joystickDevice__SetDataFormat_c_dfDIJoystick_
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0040f950
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], 0xb
call fcn.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004130e0
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 0x4357cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
call fcn.004564cc
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 0x435869
mov edx, dword [0x47c170]
push 0x52
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.0040f950
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], 0xc
call fcn.00402330
mov ecx, dword [0x47c170]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004130e0
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 0x435869
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 ebx, 0x10
push 4
mov dword [esp + 0x3c], 0x18
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edi
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 0x435925
mov ecx, dword [0x47c170]
mov ecx, dword [ecx + 0x10]
push 0x5d
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.0040f950
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.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004130e0
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 0x435925
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 0x4359bc
mov ecx, dword [0x47c170]
mov ecx, dword [ecx + 0x10]
push 0x5f
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.0040f950
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.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004130e0
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 0x4359bc
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 [0x46bd48]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], edi
call fcn.0043eb98
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 0x435a76
mov ecx, dword [0x47c170]
mov ecx, dword [ecx + 0x10]
push 0x69
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.0040f950
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.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004130e0
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 0x435a76
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 0x435b0c
mov ecx, dword [0x47c170]
mov ecx, dword [ecx + 0x10]
push 0x6b
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.0040f950
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], bl
call fcn.00402330
mov eax, dword [0x47c170]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004130e0
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 0x435b0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [0x47c170]
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.00434a40
mov ecx, dword [0x47c170]
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.UNKNOWN__d
push ebx
call fcn.0041b020
add esp, 0xc
inc edi
add ebx, 4
cmp edi, 0x138
jl 0x435b73
mov eax, 0x45d66d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435b96
sub eax, edx
push eax
push 0x45d66d
lea ecx, [esi + 0x348]
call fcn.004021e0
mov eax, 0x46e314
lea ecx, [esi + 0x34c]
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435bc0
sub eax, edi
push eax
push 0x46e314
call fcn.004021e0
mov eax, 0x46e310
lea ecx, [esi + 0x350]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435be2
sub eax, edi
push eax
push 0x46e310
call fcn.004021e0
mov eax, 0x46e30c
lea ecx, [esi + 0x354]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435c04
sub eax, edi
push eax
push 0x46e30c
call fcn.004021e0
mov eax, 0x46e308
lea ecx, [esi + 0x358]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435c26
sub eax, edi
push eax
push 0x46e308
call fcn.004021e0
mov eax, 0x46e304
lea ecx, [esi + 0x35c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435c48
sub eax, edi
push eax
push 0x46e304
call fcn.004021e0
mov eax, 0x46e300
lea ecx, [esi + 0x360]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435c70
sub eax, edi
push eax
push 0x46e300
call fcn.004021e0
mov eax, 0x46e2fc
lea ecx, [esi + 0x364]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435c92
sub eax, edi
push eax
push 0x46e2fc
call fcn.004021e0
mov eax, 0x46e2f8
lea ecx, [esi + 0x368]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435cb4
sub eax, edi
push eax
push 0x46e2f8
call fcn.004021e0
mov eax, 0x46e2f4
lea ecx, [esi + 0x36c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435cd6
sub eax, edi
push eax
push 0x46e2f4
call fcn.004021e0
mov eax, 0x46e2f0
lea ecx, [esi + 0x370]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435cf8
sub eax, edi
push eax
push 0x46e2f0
call fcn.004021e0
mov eax, str.0987654321
lea ecx, [esi + 0x374]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435d20
sub eax, edi
push eax
push str.0987654321
call fcn.004021e0
mov eax, str.MINUS
lea ecx, [esi + 0x378]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435d42
sub eax, edi
push eax
push str.MINUS
call fcn.004021e0
mov eax, str.EQUALS
lea ecx, [esi + 0x37c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435d64
sub eax, edi
push eax
push str.EQUALS
call fcn.004021e0
mov eax, str.BACKSPACE
lea ecx, [esi + 0x380]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435d86
sub eax, edi
push eax
push str.BACKSPACE
call fcn.004021e0
mov eax, 0x46e2cc
lea ecx, [esi + 0x384]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435da8
sub eax, edi
push eax
push 0x46e2cc
call fcn.004021e0
mov eax, 0x46e2c8
lea ecx, [esi + 0x388]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435dd0
sub eax, edi
push eax
push 0x46e2c8
call fcn.004021e0
mov eax, 0x46e2c4
lea ecx, [esi + 0x38c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435df2
sub eax, edi
push eax
push 0x46e2c4
call fcn.004021e0
mov eax, 0x46e2c0
lea ecx, [esi + 0x390]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435e14
sub eax, edi
push eax
push 0x46e2c0
call fcn.004021e0
mov eax, 0x46e2bc
lea ecx, [esi + 0x394]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435e36
sub eax, edi
push eax
push 0x46e2bc
call fcn.004021e0
mov eax, 0x46e2b8
lea ecx, [esi + 0x398]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435e58
sub eax, edi
push eax
push 0x46e2b8
call fcn.004021e0
mov eax, 0x46e2b4
lea ecx, [esi + 0x39c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435e80
sub eax, edi
push eax
push 0x46e2b4
call fcn.004021e0
mov eax, 0x46e2b0
lea ecx, [esi + 0x3a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435ea2
sub eax, edi
push eax
push 0x46e2b0
call fcn.004021e0
mov eax, 0x46e2ac
lea ecx, [esi + 0x3a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435ec4
sub eax, edi
push eax
push 0x46e2ac
call fcn.004021e0
mov eax, 0x46e2a8
lea ecx, [esi + 0x3a8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435ee6
sub eax, edi
push eax
push 0x46e2a8
call fcn.004021e0
mov eax, str.POIUYTREWQ
lea ecx, [esi + 0x3ac]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435f08
sub eax, edi
push eax
push str.POIUYTREWQ
call fcn.004021e0
mov eax, str.LBRACKET
lea ecx, [esi + 0x3b0]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435f30
sub eax, edi
push eax
push str.LBRACKET
call fcn.004021e0
mov eax, str.RBRACKET
lea ecx, [esi + 0x3b4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435f52
sub eax, edi
push eax
push str.RBRACKET
call fcn.004021e0
mov eax, str.RETURN
lea ecx, [esi + 0x3b8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435f74
sub eax, edi
push eax
push str.RETURN
call fcn.004021e0
mov eax, 0x46e278
lea ecx, [esi + 0x3bc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435f96
sub eax, edi
push eax
push 0x46e278
call fcn.004021e0
mov eax, 0x46e274
lea ecx, [esi + 0x3c0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435fb8
sub eax, edi
push eax
push 0x46e274
call fcn.004021e0
mov eax, 0x46e270
lea ecx, [esi + 0x3c4]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x435fe0
sub eax, edi
push eax
push 0x46e270
call fcn.004021e0
mov eax, 0x46e26c
lea ecx, [esi + 0x3c8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436002
sub eax, edi
push eax
push 0x46e26c
call fcn.004021e0
mov eax, 0x46e268
lea ecx, [esi + 0x3cc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436024
sub eax, edi
push eax
push 0x46e268
call fcn.004021e0
mov eax, 0x46e264
lea ecx, [esi + 0x3d0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436046
sub eax, edi
push eax
push 0x46e264
call fcn.004021e0
mov eax, 0x46e260
lea ecx, [esi + 0x3d4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436068
sub eax, edi
push eax
push 0x46e260
call fcn.004021e0
mov eax, 0x46e25c
lea ecx, [esi + 0x3d8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436090
sub eax, edi
push eax
push 0x46e25c
call fcn.004021e0
mov eax, 0x46e258
lea ecx, [esi + 0x3dc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4360b2
sub eax, edi
push eax
push 0x46e258
call fcn.004021e0
mov eax, str.LKJHGFDSA
lea ecx, [esi + 0x3e0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4360d4
sub eax, edi
push eax
push str.LKJHGFDSA
call fcn.004021e0
mov eax, str.SEMICOLON
lea ecx, [esi + 0x3e4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4360f6
sub eax, edi
push eax
push str.SEMICOLON
call fcn.004021e0
mov eax, str.APOSTROPHE
lea ecx, [esi + 0x3e8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436118
sub eax, edi
push eax
push str.APOSTROPHE
call fcn.004021e0
mov eax, str.GRAVE
lea ecx, [esi + 0x3ec]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436140
sub eax, edi
push eax
push str.GRAVE
call fcn.004021e0
mov eax, str.LSHIFT
lea ecx, [esi + 0x3f0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436162
sub eax, edi
push eax
push str.LSHIFT
call fcn.004021e0
mov eax, 0x46e220
lea ecx, [esi + 0x3f4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436184
sub eax, edi
push eax
push 0x46e220
call fcn.004021e0
mov eax, 0x46e21c
lea ecx, [esi + 0x3f8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4361a6
sub eax, edi
push eax
push 0x46e21c
call fcn.004021e0
mov eax, 0x46e218
lea ecx, [esi + 0x3fc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4361c8
sub eax, edi
push eax
push 0x46e218
call fcn.004021e0
mov eax, 0x46e214
lea ecx, [esi + 0x400]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4361f0
sub eax, edi
push eax
push 0x46e214
call fcn.004021e0
mov eax, 0x46e210
lea ecx, [esi + 0x404]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436212
sub eax, edi
push eax
push 0x46e210
call fcn.004021e0
mov eax, 0x46e20c
lea ecx, [esi + 0x408]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436234
sub eax, edi
push eax
push 0x46e20c
call fcn.004021e0
mov eax, 0x46e208
lea ecx, [esi + 0x40c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436256
sub eax, edi
push eax
push 0x46e208
call fcn.004021e0
mov eax, str.MNBVCXZ
lea ecx, [esi + 0x410]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436278
sub eax, edi
push eax
push str.MNBVCXZ
call fcn.004021e0
mov eax, str.COMMA
lea ecx, [esi + 0x414]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4362a0
sub eax, edi
push eax
push str.COMMA
call fcn.004021e0
mov eax, str.PERIOD
lea ecx, [esi + 0x418]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4362c2
sub eax, edi
push eax
push str.PERIOD
call fcn.004021e0
mov eax, 0x46e1ec
lea ecx, [esi + 0x41c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4362e4
sub eax, edi
push eax
push 0x46e1ec
call fcn.004021e0
mov eax, str.RSHIFT
lea ecx, [esi + 0x420]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436306
sub eax, edi
push eax
push str.RSHIFT
call fcn.004021e0
mov eax, str.MULTIPLY
lea ecx, [esi + 0x424]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436328
sub eax, edi
push eax
push str.MULTIPLY
call fcn.004021e0
mov eax, str.LALT
lea ecx, [esi + 0x428]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436350
sub eax, edi
push eax
push str.LALT
call fcn.004021e0
mov eax, str.SPACE
lea ecx, [esi + 0x42c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436372
sub eax, edi
push eax
push str.SPACE
call fcn.004021e0
mov eax, str.CAPITAL
lea ecx, [esi + 0x430]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436394
sub eax, edi
push eax
push str.CAPITAL
call fcn.004021e0
mov eax, 0x46e1bc
lea ecx, [esi + 0x434]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4363b6
sub eax, edi
push eax
push 0x46e1bc
call fcn.004021e0
mov eax, 0x46e1b8
lea ecx, [esi + 0x438]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4363d8
sub eax, edi
push eax
push 0x46e1b8
call fcn.004021e0
mov eax, 0x46e1b4
lea ecx, [esi + 0x43c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436400
sub eax, edi
push eax
push 0x46e1b4
call fcn.004021e0
mov eax, 0x46e1b0
lea ecx, [esi + 0x440]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436422
sub eax, edi
push eax
push 0x46e1b0
call fcn.004021e0
mov eax, 0x46e1ac
lea ecx, [esi + 0x444]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436444
sub eax, edi
push eax
push 0x46e1ac
call fcn.004021e0
mov eax, 0x46e1a8
lea ecx, [esi + 0x448]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436466
sub eax, edi
push eax
push 0x46e1a8
call fcn.004021e0
mov eax, 0x46e1a4
lea ecx, [esi + 0x44c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436488
sub eax, edi
push eax
push 0x46e1a4
call fcn.004021e0
mov eax, 0x46e1a0
lea ecx, [esi + 0x450]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4364b0
sub eax, edi
push eax
push 0x46e1a0
call fcn.004021e0
mov eax, 0x46e19c
lea ecx, [esi + 0x454]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4364d2
sub eax, edi
push eax
push 0x46e19c
call fcn.004021e0
mov eax, 0x46e198
lea ecx, [esi + 0x458]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4364f4
sub eax, edi
push eax
push 0x46e198
call fcn.004021e0
mov eax, str.NUMLOCK
lea ecx, [esi + 0x45c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436516
sub eax, edi
push eax
push str.NUMLOCK
call fcn.004021e0
mov eax, str.SCROLL
lea ecx, [esi + 0x460]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436538
sub eax, edi
push eax
push str.SCROLL
call fcn.004021e0
mov eax, str.NUMPAD7
lea ecx, [esi + 0x464]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436560
sub eax, edi
push eax
push str.NUMPAD7
call fcn.004021e0
mov eax, str.NUMPAD8
lea ecx, [esi + 0x468]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436582
sub eax, edi
push eax
push str.NUMPAD8
call fcn.004021e0
mov eax, str.NUMPAD9
lea ecx, [esi + 0x46c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4365a4
sub eax, edi
push eax
push str.NUMPAD9
call fcn.004021e0
mov eax, str.SUBTRACT
lea ecx, [esi + 0x470]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4365c6
sub eax, edi
push eax
push str.SUBTRACT
call fcn.004021e0
mov eax, str.NUMPAD4
lea ecx, [esi + 0x474]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4365e8
sub eax, edi
push eax
push str.NUMPAD4
call fcn.004021e0
mov eax, str.NUMPAD5
lea ecx, [esi + 0x478]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436610
sub eax, edi
push eax
push str.NUMPAD5
call fcn.004021e0
mov eax, str.NUMPAD6
lea ecx, [esi + 0x47c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436632
sub eax, edi
push eax
push str.NUMPAD6
call fcn.004021e0
mov eax, 0x46e148
lea ecx, [esi + 0x480]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436654
sub eax, edi
push eax
push 0x46e148
call fcn.004021e0
mov eax, str.NUMPAD1
lea ecx, [esi + 0x484]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436676
sub eax, edi
push eax
push str.NUMPAD1
call fcn.004021e0
mov eax, str.NUMPAD2
lea ecx, [esi + 0x488]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436698
sub eax, edi
push eax
push str.NUMPAD2
call fcn.004021e0
mov eax, str.NUMPAD3
lea ecx, [esi + 0x48c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4366c0
sub eax, edi
push eax
push str.NUMPAD3
call fcn.004021e0
mov eax, str.NUMPAD0
lea ecx, [esi + 0x490]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4366e2
sub eax, edi
push eax
push str.NUMPAD0
call fcn.004021e0
mov eax, str.DECIMAL
lea ecx, [esi + 0x494]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436704
sub eax, edi
push eax
push str.DECIMAL
call fcn.004021e0
mov eax, str.OEM_102
lea ecx, [esi + 0x4a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436726
sub eax, edi
push eax
push str.OEM_102
call fcn.004021e0
mov eax, 0x46e114
lea ecx, [esi + 0x4a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436748
sub eax, edi
push eax
push 0x46e114
call fcn.004021e0
mov eax, 0x46e110
lea ecx, [esi + 0x4a8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436770
sub eax, edi
push eax
push 0x46e110
call fcn.004021e0
mov eax, 0x46e10c
lea ecx, [esi + 0x4d8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436792
sub eax, edi
push eax
push 0x46e10c
call fcn.004021e0
mov eax, 0x46e108
lea ecx, [esi + 0x4dc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4367b4
sub eax, edi
push eax
push 0x46e108
call fcn.004021e0
mov eax, 0x46e104
lea ecx, [esi + 0x4e0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4367d6
sub eax, edi
push eax
push 0x46e104
call fcn.004021e0
mov eax, str.KANA
lea ecx, [esi + 0x508]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4367f8
sub eax, edi
push eax
push str.KANA
call fcn.004021e0
mov eax, str.ABNT_C1
lea ecx, [esi + 0x514]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436820
sub eax, edi
push eax
push str.ABNT_C1
call fcn.004021e0
mov eax, str.CONVERT
lea ecx, [esi + 0x52c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436842
sub eax, edi
push eax
push str.CONVERT
call fcn.004021e0
mov eax, str.NOCONVERT
lea ecx, [esi + 0x534]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436864
sub eax, edi
push eax
push str.NOCONVERT
call fcn.004021e0
mov eax, 0x46e0dc
lea ecx, [esi + 0x53c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436886
sub eax, edi
push eax
push 0x46e0dc
call fcn.004021e0
mov eax, str.ABNT_C2
lea ecx, [esi + 0x540]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4368a8
sub eax, edi
push eax
push str.ABNT_C2
call fcn.004021e0
mov eax, str.NUMPADEQUALS
lea ecx, [esi + 0x57c]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4368d0
sub eax, edi
push eax
push str.NUMPADEQUALS
call fcn.004021e0
mov eax, str.PREVTRACK
lea ecx, [esi + 0x588]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4368f2
sub eax, edi
push eax
push str.PREVTRACK
call fcn.004021e0
mov eax, 0x46b89c
lea ecx, [esi + 0x58c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436914
sub eax, edi
push eax
push 0x46b89c
call fcn.004021e0
mov eax, str.COLON
lea ecx, [esi + 0x590]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436936
sub eax, edi
push eax
push str.COLON
call fcn.004021e0
mov eax, str.UNDERLINE
lea ecx, [esi + 0x594]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436958
sub eax, edi
push eax
push str.UNDERLINE
call fcn.004021e0
mov eax, str.KANJI
lea ecx, [esi + 0x598]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436980
sub eax, edi
push eax
push str.KANJI
call fcn.004021e0
mov eax, str.STOP
lea ecx, [esi + 0x59c]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4369a2
sub eax, edi
push eax
push str.STOP
call fcn.004021e0
mov eax, 0x46e090
lea ecx, [esi + 0x5a0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4369c4
sub eax, edi
push eax
push 0x46e090
call fcn.004021e0
mov eax, str.UNLABELED
lea ecx, [esi + 0x5a4]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4369e6
sub eax, edi
push eax
push str.UNLABELED
call fcn.004021e0
mov eax, str.NEXTTRACK
lea ecx, [esi + 0x5ac]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436a08
sub eax, edi
push eax
push str.NEXTTRACK
call fcn.004021e0
mov eax, str.NUMPADENTER
lea ecx, [esi + 0x5b8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436a30
sub eax, edi
push eax
push str.NUMPADENTER
call fcn.004021e0
mov eax, str.RCONTROL
lea ecx, [esi + 0x5bc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436a52
sub eax, edi
push eax
push str.RCONTROL
call fcn.004021e0
mov eax, str.MUTE
lea ecx, [esi + 0x5c8]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436a74
sub eax, edi
push eax
push str.MUTE
call fcn.004021e0
mov eax, str.CALCULATOR
lea ecx, [esi + 0x5cc]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436a96
sub eax, edi
push eax
push str.CALCULATOR
call fcn.004021e0
mov eax, str.PLAYPAUSE
lea ecx, [esi + 0x5d0]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436ab8
sub eax, edi
push eax
push str.PLAYPAUSE
call fcn.004021e0
mov eax, str.MEDIASTOP
lea ecx, [esi + 0x5d8]
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x436ae0