Function at 0x418bf0
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 8
mov ah, byte [0x4aa62f]
push ebx
mov ebx, dword [esp + 0x10]
mov word [esp + 8], 0x920
mov byte [esp + 0xa], ah
mov byte [esp + 0xb], 0
push ebp
mov ebp, ecx
mov dword [esp + 8], ebp
push esi
push edi
mov edi, ebx
test ebx, ebx
je 0x418c48
mov dl, byte [ebx]
test dl, dl
je 0x418c48
lea ecx, [esp + 0x14]
mov al, 0x20
lea esp, [esp]
cmp dl, al
je 0x418cc3
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x418c30
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x418c23
mov ecx, ebx
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418c50
sub ecx, edx
lea edi, [ecx + ebx]
xor esi, esi
sub edi, ebx
mov edx, str.Include
push 0xffffffffffffffff
push edi
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
je 0x4199b2
push 0xffffffffffffffff
push edi
mov edx, str.IncludeAgain
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
je 0x4199b2
push 0xffffffffffffffff
push edi
mov edx, str.NoEnv
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418cf4
mov dword [0x4ad9c8], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov esi, edi
mov al, byte [esi]
cmp al, 0x20
je 0x418ccf
cmp al, 9
jne 0x418cd2
inc esi
jmp 0x418cc5
mov al, byte [esi]
test al, al
je 0x418c5c
cmp al, ah
jne 0x418c5e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x418cdc
cmp al, 9
je 0x418cdc
xor eax, eax
cmp byte [esi], al
cmove esi, eax
jmp 0x418c5e
push 0xffffffffffffffff
push edi
mov edx, str.NoTrayIcon
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418d20
mov byte [0x4ad9cf], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.Persistent
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418d4c
mov byte [0x4ad0f1], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.SingleInstance
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418dff
mov dword [0x4ad100], 1
test esi, esi
je 0x4199b2
push str.Force
push esi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418da3
mov dword [0x4ad100], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push str.Ignore
push esi
call fcn.00484212
add esp, 8
test eax, eax
jne 0x418dce
mov dword [0x4ad100], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x49e62c
push esi
call fcn.00484212
mov ecx, dword [0x4ad100]
add esp, 8
mov edx, 4
test eax, eax
cmove ecx, edx
mov dword [0x4ad100], ecx
lea eax, [edx - 1]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InstallKeybdHook
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418e2b
or byte [0x4adb5e], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InstallMouseHook
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418e57
or byte [0x4adb5e], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.UseHook
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418ea0
test esi, esi
je 0x418e8a
xor edx, edx
mov ecx, esi
call fcn.00409920
mov byte [0x4ad131], 0
cmp eax, 2
je 0x4199b2
mov byte [0x4ad131], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x49c97c
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418f76
test esi, esi
jne 0x418ed7
mov dword [0x4ad9c4], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, esi
call fcn.00409f10
mov dword [0x4ad9c4], eax
test eax, eax
jne 0x4199b2
mov eax, dword [0x4aa1d8]
mov ecx, ebp
push 0
push 0
push 0
mov edi, dword [eax + 0x94]
push 0x49bc4d
push 0
push 0xe1
mov dword [eax + 0x94], 0
push esi
mov byte [ebp + 0x45], 1
call fcn.0041a040
test eax, eax
jne 0x418f2e
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, dword [0x4aa1d8]
mov byte [ebp + 0x45], 0
mov dword [eax + 0x94], edi
mov esi, dword [ebp + 4]
call fcn.00409e90
mov ecx, eax
mov dword [0x4ad9c4], ecx
test ecx, ecx
je 0x418f22
mov byte [ecx], 5
mov dword [ecx + 0xc], esi
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, 3
mov dword [ecx + 8], 0x49bc4d
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.IfTimeout
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x418faf
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.004133c0
mov dword [0x4aa6f8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 6
push str.IfWin
push ebx
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x419137
push 3
lea eax, [ebx + 6]
push 0x49e700
push eax
call fcn.00484c8d
add esp, 0xc
mov edx, 9
test eax, eax
mov edi, 6
sete cl
test cl, cl
mov byte [esp + 0x1c], cl
push 6
cmovne edi, edx
add edi, ebx
push str.Active
push edi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x419013
cmp byte [esp + 0x1c], al
setne al
add al, 1
jmp 0x419034
push 5
push str.Exist
push edi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x419128
cmp byte [esp + 0x1c], al
setne al
add al, 3
mov byte [esp + 0x1c], al
test esi, esi
je 0x418ebe
mov dl, byte [0x4aa62f]
xor ebp, ebp
mov dh, byte [str.___M]
mov ecx, esi
mov ah, byte [0x4aa62e]
mov al, byte [ecx]
test al, al
je 0x419074
lea esp, [esp]
cmp al, dh
je 0x41908d
cmp al, dl
je 0x41908d
cmp al, ah
je 0x41908d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x419060
test ebp, ebp
je 0x4190e3
lea edi, [ebp + 1]
jmp 0x419080
mov al, byte [edi]
cmp al, 0x20
je 0x41908a
cmp al, 9
jne 0x4190c6
inc edi
jmp 0x419080
mov al, byte [ecx]
test al, al
je 0x419074
cmp al, ah
je 0x4190ad
cmp al, dl
jne 0x4190a4
test ebp, ebp
jne 0x4190ad
mov ebp, ecx
inc ecx
jmp 0x419056
inc ecx
cmp byte [ecx], 0
je 0x419074
inc ecx
jmp 0x419056
mov ecx, dword [esp + 0x10]
push ebx
push str.Literal_commas_and_percent_signs_must_be_escaped__e.g.____
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov byte [ebp], 0
mov ecx, esi
sub ebp, esi
mov edx, ebp
call fcn.004132b0
push 1
mov ecx, edi
call fcn.00473910
add esp, 4
jmp 0x4190e8
mov edi, 0x49bc4d
push 1
mov ecx, esi
call fcn.00473910
mov cl, byte [esp + 0x20]
add esp, 4
mov edx, esi
push edi
call fcn.00409c90
add esp, 4
test eax, eax
jne 0x4199b2
mov ecx, dword [esp + 0x10]
push 0x49bc4d
push str.Out_of_memory.
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x49fb94
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419230
test esi, esi
je 0x4199b2
mov edx, str.EndChars
mov ecx, esi
call fcn.00471970
test eax, eax
je 0x4191b3
mov edx, 0x49fba0
mov ecx, eax
call fcn.00409840
test eax, eax
je 0x4199b2
push 0x64
inc eax
push eax
push str._____:____.___n__t
call fcn.00487600
add esp, 0xc
mov byte [0x4aa62c], 0
mov ecx, str._____:____.___n__t
push 0
call fcn.00473910
add esp, 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 7
push str.NoMouse
push esi
call fcn.00484c8d
add esp, 0xc
test eax, eax
jne 0x4191db
mov byte [0x4aa25c], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4ad0f0
push 0x4ad133
push 0x4ad228
push 0x4aa25d
push 0x4ad22b
push 0x4ad229
push 0x4aa25e
push 0x4aa25f
push 0x4ad22a
push 0x4aa6f4
push 0x4ad22c
mov edx, 0x4ad230
mov ecx, esi
call fcn.0040d410
add esp, 0x2c
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.HotkeyModifierTimeout
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419269
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
mov dword [0x4ab368], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.HotkeyInterval
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4192aa
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
mov ecx, 0xa
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4aa6fc], eax
lea eax, [ecx - 7]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxHotkeysPerInterval
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4192eb
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4ab35c], eax
lea eax, [ecx + 2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreadsPerHotkey
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x41934c
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
cmp eax, 0xff
jle 0x419330
mov eax, 0xff
mov byte [0x4ab360], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov byte [0x4ab360], al
lea eax, [ecx + 2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreadsBuffer
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419395
test esi, esi
je 0x41937f
xor edx, edx
mov ecx, esi
call fcn.00409920
mov byte [0x4ad2a2], 0
cmp eax, 2
je 0x4199b2
mov byte [0x4ad2a2], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxThreads
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4193f6
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
cmp eax, 0xff
jle 0x4193da
mov eax, 0xff
mov dword [0x4aa1d4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4aa1d4], eax
lea eax, [ecx + 2]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.ClipboardTimeout
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x41942f
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
mov dword [0x4aa1e0], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.LTrim
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419478
test esi, esi
je 0x419462
xor edx, edx
mov ecx, esi
call fcn.00409920
mov byte [0x4ad132], 0
cmp eax, 2
je 0x4199b2
mov byte [0x4ad132], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.WinActivateForce
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4194a4
mov byte [0x4ad9e5], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.ErrorStdOut
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4194d0
mov byte [ebp + 0x617], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MaxMem
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419542
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.00413430
movapd xmm1, xmm0
movsd xmm0, qword [0x4a4288]
comisd xmm1, xmm0
ja 0x419515
movsd xmm0, qword [0x4a4248]
comisd xmm0, xmm1
jbe 0x419519
movapd xmm1, xmm0
movsd xmm0, qword [0x4a4280]
mulsd xmm1, xmm0
mulsd xmm0, xmm1
call fcn.00494ca1
mov dword [0x4ab364], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.KeyHistory
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4195a2
test esi, esi
je 0x4199b2
mov ecx, esi
call fcn.0040dd10
test eax, eax
jns 0x419584
mov dword [0x4aa1dc], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, 0x1f4
cmp eax, ecx
cmovg eax, ecx
mov dword [0x4aa1dc], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.CommentFlag
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419674
test esi, esi
je 0x4199b2
cmp byte [esi + 1], al
jne 0x419637
mov al, byte [esi]
cmp al, 0x23
je 0x41984b
cmp al, byte [0x4aa62e]
je 0x41984b
cmp al, byte [str.___M]
je 0x41984b
cmp al, byte [0x4aa62f]
je 0x41984b
cmp al, 0x21
je 0x41984b
cmp al, 0x5e
je 0x41984b
cmp al, 0x2b
je 0x41984b
cmp al, 0x24
je 0x41984b
cmp al, 0x7e
je 0x41984b
cmp al, 0x2a
je 0x41984b
cmp al, 0x3c
je 0x41984b
cmp al, 0x3e
je 0x41984b
push 0xf
push esi
push 0x4ab890
call fcn.00487600
mov ecx, 0x4ab890
mov byte [0x4ab89f], 0
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x419656
sub ecx, edx
mov eax, 3
mov dword [0x4ab378], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.EscapeChar
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4196e5
test esi, esi
je 0x4199b2
mov al, byte [esi]
cmp al, 0x23
je 0x41984b
cmp al, byte [0x4aa62e]
je 0x41984b
cmp al, byte [0x4aa62f]
je 0x41984b
cmp al, 0x2e
je 0x41984b
cmp dword [0x4ab378], 1
jne 0x4196d1
cmp al, byte [0x4ab890]
je 0x41984b
mov byte [str.___M], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.DerefChar
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x41974e
test esi, esi
je 0x4199b2
mov al, byte [esi]
cmp al, byte [str.___M]
je 0x41984b
cmp al, byte [0x4aa62f]
je 0x41984b
cmp al, 0x2e
je 0x41984b
cmp dword [0x4ab378], 1
jne 0x41973a
cmp al, byte [0x4ab890]
je 0x41984b
mov byte [0x4aa62e], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x49fc90
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x4197bf
test esi, esi
je 0x4199b2
mov al, byte [esi]
cmp al, 0x23
je 0x41984b
cmp al, byte [str.___M]
je 0x41984b
cmp al, byte [0x4aa62e]
je 0x41984b
cmp al, 0x2e
je 0x41984b
cmp dword [0x4ab378], 1
jne 0x4197ab
cmp al, byte [0x4ab890]
je 0x41984b
mov byte [0x4aa62f], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.MenuMaskKey
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419821
test esi, esi
je 0x4197ff
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0x4ab36c
mov edx, 0x4ab361
mov ecx, esi
call fcn.004124f0
add esp, 0xc
test al, al
jne 0x4199b2
test esi, esi
mov ecx, str.Parameter_1_required
mov eax, str.Parameter_1_invalid.
cmove eax, ecx
mov ecx, ebp
push ebx
push eax
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.InputLevel
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419878
test esi, esi
je 0x419862
mov ecx, esi
call fcn.0040dd10
test eax, eax
js 0x41984b
cmp eax, 0x64
jle 0x419864
push ebx
push str.Parameter_1_invalid.
mov ecx, ebp
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
xor eax, eax
mov byte [0x4ad2a1], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, str.Warn
mov ecx, ebx
call fcn.00471670
add esp, 8
test eax, eax
jne 0x419128
movsx eax, byte [0x4aa62f]
test esi, esi
mov edi, 0x49bc4d
cmovne edi, esi
push eax
push edi
call fcn.004855e4
mov edx, eax
add esp, 8
mov ebp, 0x49bc4d
test edx, edx
je 0x4198da
lea ebp, [edx + 1]
jmp 0x4198c0
mov al, byte [ebp]
cmp al, 0x20
je 0x4198cb
cmp al, 9
jne 0x4198ce
inc ebp
jmp 0x4198c0
dec edx
mov ecx, edi
call fcn.004098a0
mov byte [eax + 1], 0
cmp byte [edi], 0
mov esi, 5
je 0x419923
xor esi, esi
jmp 0x4198f0
push dword [esi*4 + 0x4a1580]
push edi
call fcn.00484212
add esp, 8
test eax, eax
je 0x419923
inc esi
cmp esi, 6
jne 0x4198f0
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_1_invalid.
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp byte [ebp], 0
mov edi, 2
je 0x419963
xor edi, edi
push dword [edi*4 + 0x4a1570]
push ebp
call fcn.00484212
add esp, 8
test eax, eax
je 0x419963
inc edi
cmp edi, 4
jne 0x419930
mov ecx, dword [esp + 0x10]
push ebp
push str.Parameter_2_invalid.
call fcn.0042ce80
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
test esi, esi
je 0x41996c
cmp esi, 5
jne 0x419972
mov dword [0x4ad9e0], edi
cmp esi, 1
je 0x41997c
cmp esi, 5
jne 0x419982
mov dword [0x4ad9dc], edi
cmp esi, 3
je 0x41998c
cmp esi, 5
jne 0x419992
mov dword [0x4ad9d8], edi
cmp esi, 2
je 0x41999c
cmp esi, 5
jne 0x4199a2
mov dword [0x4ad9d4], edi
cmp esi, 4
je 0x4199ac
cmp esi, 5
jne 0x4199b2
mov dword [0x4ad9d0], edi
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 8
ret 4