Function at 0x41a0d0
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 8
mov ah, byte [0x4ac62f]
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 0x41a128
mov dl, byte [ebx]
test dl, dl
je 0x41a128
lea ecx, [esp + 0x14]
mov al, 0x20
lea esp, [esp]
cmp dl, al
je 0x41a1a3
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41a110
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x41a103
mov ecx, ebx
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41a130
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.00472b50
add esp, 8
test eax, eax
je 0x41ae92
push 0xffffffffffffffff
push edi
mov edx, str.IncludeAgain
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
je 0x41ae92
push 0xffffffffffffffff
push edi
mov edx, str.NoEnv
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
jne 0x41a1d4
mov dword [0x4af994], 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 0x41a1af
cmp al, 9
jne 0x41a1b2
inc esi
jmp 0x41a1a5
mov al, byte [esi]
test al, al
je 0x41a13c
cmp al, ah
jne 0x41a13e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x41a1bc
cmp al, 9
je 0x41a1bc
xor eax, eax
cmp byte [esi], al
cmove esi, eax
jmp 0x41a13e
push 0xffffffffffffffff
push edi
mov edx, str.NoTrayIcon
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
jne 0x41a200
mov byte [0x4af99b], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a22c
mov byte [0x4af0bd], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a2df
mov dword [0x4af0cc], 1
test esi, esi
je 0x41ae92
push str.Force
push esi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x41a283
mov dword [0x4af0cc], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push str.Ignore
push esi
call fcn.004855c8
add esp, 8
test eax, eax
jne 0x41a2ae
mov dword [0x4af0cc], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4a09fc
push esi
call fcn.004855c8
mov ecx, dword [0x4af0cc]
add esp, 8
mov edx, 4
test eax, eax
cmove ecx, edx
mov dword [0x4af0cc], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a30b
or byte [0x4afb2a], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a337
or byte [0x4afb2a], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a380
test esi, esi
je 0x41a36a
xor edx, edx
mov ecx, esi
call fcn.0040aaa0
mov byte [0x4af0fd], 0
cmp eax, 2
je 0x41ae92
mov byte [0x4af0fd], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x49ed54
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
jne 0x41a456
test esi, esi
jne 0x41a3b7
mov dword [0x4af990], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, esi
call fcn.0040b090
mov dword [0x4af990], eax
test eax, eax
jne 0x41ae92
mov eax, dword [0x4ac1d8]
mov ecx, ebp
push 0
push 0
push 0
mov edi, dword [eax + 0x94]
push 0x49e065
push 0
push 0xe1
mov dword [eax + 0x94], 0
push esi
mov byte [ebp + 0x45], 1
call fcn.0041b520
test eax, eax
jne 0x41a40e
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov eax, dword [0x4ac1d8]
mov byte [ebp + 0x45], 0
mov dword [eax + 0x94], edi
mov esi, dword [ebp + 4]
call fcn.0040b010
mov ecx, eax
mov dword [0x4af990], ecx
test ecx, ecx
je 0x41a402
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], 0x49e065
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.00472b50
add esp, 8
test eax, eax
jne 0x41a48f
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.00414540
mov dword [0x4ac6f8], 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.0048616d
add esp, 0xc
test eax, eax
jne 0x41a617
push 3
lea eax, [ebx + 6]
push 0x4a0ad0
push eax
call fcn.0048616d
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.0048616d
add esp, 0xc
test eax, eax
jne 0x41a4f3
cmp byte [esp + 0x1c], al
setne al
add al, 1
jmp 0x41a514
push 5
push str.Exist
push edi
call fcn.0048616d
add esp, 0xc
test eax, eax
jne 0x41a608
cmp byte [esp + 0x1c], al
setne al
add al, 3
mov byte [esp + 0x1c], al
test esi, esi
je 0x41a39e
mov dl, byte [0x4ac62f]
xor ebp, ebp
mov dh, byte [0x4ac62d]
mov ecx, esi
mov ah, byte [0x4ac62e]
mov al, byte [ecx]
test al, al
je 0x41a554
lea esp, [esp]
cmp al, dh
je 0x41a56d
cmp al, dl
je 0x41a56d
cmp al, ah
je 0x41a56d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x41a540
test ebp, ebp
je 0x41a5c3
lea edi, [ebp + 1]
jmp 0x41a560
mov al, byte [edi]
cmp al, 0x20
je 0x41a56a
cmp al, 9
jne 0x41a5a6
inc edi
jmp 0x41a560
mov al, byte [ecx]
test al, al
je 0x41a554
cmp al, ah
je 0x41a58d
cmp al, dl
jne 0x41a584
test ebp, ebp
jne 0x41a58d
mov ebp, ecx
inc ecx
jmp 0x41a536
inc ecx
cmp byte [ecx], 0
je 0x41a554
inc ecx
jmp 0x41a536
mov ecx, dword [esp + 0x10]
push ebx
push str.Literal_commas_and_percent_signs_must_be_escaped__e.g.____
call fcn.0042e360
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.00414430
push 1
mov ecx, edi
call fcn.00474df0
add esp, 4
jmp 0x41a5c8
mov edi, 0x49e065
push 1
mov ecx, esi
call fcn.00474df0
mov cl, byte [esp + 0x20]
add esp, 4
mov edx, esi
push edi
call fcn.0040ae10
add esp, 4
test eax, eax
jne 0x41ae92
mov ecx, dword [esp + 0x10]
push 0x49e065
push str.Out_of_memory.
call fcn.0042e360
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, 0x4a1f7c
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
jne 0x41a710
test esi, esi
je 0x41ae92
mov edx, str.EndChars
mov ecx, esi
call fcn.00472e50
test eax, eax
je 0x41a693
mov edx, 0x4a1f88
mov ecx, eax
call fcn.0040a9c0
test eax, eax
je 0x41ae92
push 0x64
inc eax
push eax
push str._____:____.___n__t
call fcn.00488ae0
add esp, 0xc
mov byte [0x4ac62c], 0
mov ecx, str._____:____.___n__t
push 0
call fcn.00474df0
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.0048616d
add esp, 0xc
test eax, eax
jne 0x41a6bb
mov byte [0x4ac25c], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0x4af0bc
push 0x4af0ff
push 0x4af1f4
push 0x4ac25d
push 0x4af1f7
push 0x4af1f5
push 0x4ac25e
push 0x4ac25f
push 0x4af1f6
push 0x4ac6f4
push 0x4af1f8
mov edx, 0x4af1fc
mov ecx, esi
call fcn.0040e590
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.00472b50
add esp, 8
test eax, eax
jne 0x41a749
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
mov dword [0x4ad368], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a78a
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
mov ecx, 0xa
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4ac6fc], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a7cb
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
mov ecx, 1
cmp eax, ecx
cmovl eax, ecx
mov dword [0x4ad35c], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a82c
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
cmp eax, 0xff
jle 0x41a810
mov eax, 0xff
mov byte [0x4ad360], 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 [0x4ad360], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a875
test esi, esi
je 0x41a85f
xor edx, edx
mov ecx, esi
call fcn.0040aaa0
mov byte [0x4af26e], 0
cmp eax, 2
je 0x41ae92
mov byte [0x4af26e], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a8d6
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
cmp eax, 0xff
jle 0x41a8ba
mov eax, 0xff
mov dword [0x4ac1d4], 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 [0x4ac1d4], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a90f
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
mov dword [0x4ac1e0], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a958
test esi, esi
je 0x41a942
xor edx, edx
mov ecx, esi
call fcn.0040aaa0
mov byte [0x4af0fe], 0
cmp eax, 2
je 0x41ae92
mov byte [0x4af0fe], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a984
mov byte [0x4af9b1], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a9b0
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.00472b50
add esp, 8
test eax, eax
jne 0x41aa22
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.004145b0
movapd xmm1, xmm0
movsd xmm0, qword [0x4a6678]
comisd xmm1, xmm0
ja 0x41a9f5
movsd xmm0, qword [0x4a6638]
comisd xmm0, xmm1
jbe 0x41a9f9
movapd xmm1, xmm0
movsd xmm0, qword [0x4a6670]
mulsd xmm1, xmm0
mulsd xmm0, xmm1
call fcn.00496181
mov dword [0x4ad364], 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.00472b50
add esp, 8
test eax, eax
jne 0x41aa82
test esi, esi
je 0x41ae92
mov ecx, esi
call fcn.0040ee90
test eax, eax
jns 0x41aa64
mov dword [0x4ac1dc], 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 [0x4ac1dc], 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.00472b50
add esp, 8
test eax, eax
jne 0x41ab54
test esi, esi
je 0x41ae92
cmp byte [esi + 1], al
jne 0x41ab17
mov al, byte [esi]
cmp al, 0x23
je 0x41ad2b
cmp al, byte [0x4ac62e]
je 0x41ad2b
cmp al, byte [0x4ac62d]
je 0x41ad2b
cmp al, byte [0x4ac62f]
je 0x41ad2b
cmp al, 0x21
je 0x41ad2b
cmp al, 0x5e
je 0x41ad2b
cmp al, 0x2b
je 0x41ad2b
cmp al, 0x24
je 0x41ad2b
cmp al, 0x7e
je 0x41ad2b
cmp al, 0x2a
je 0x41ad2b
cmp al, 0x3c
je 0x41ad2b
cmp al, 0x3e
je 0x41ad2b
push 0xf
push esi
push 0x4ad890
call fcn.00488ae0
mov ecx, 0x4ad890
mov byte [0x4ad89f], 0
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41ab36
sub ecx, edx
mov eax, 3
mov dword [0x4ad378], 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.00472b50
add esp, 8
test eax, eax
jne 0x41abc5
test esi, esi
je 0x41ae92
mov al, byte [esi]
cmp al, 0x23
je 0x41ad2b
cmp al, byte [0x4ac62e]
je 0x41ad2b
cmp al, byte [0x4ac62f]
je 0x41ad2b
cmp al, 0x2e
je 0x41ad2b
cmp dword [0x4ad378], 1
jne 0x41abb1
cmp al, byte [0x4ad890]
je 0x41ad2b
mov byte [0x4ac62d], 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.00472b50
add esp, 8
test eax, eax
jne 0x41ac2e
test esi, esi
je 0x41ae92
mov al, byte [esi]
cmp al, byte [0x4ac62d]
je 0x41ad2b
cmp al, byte [0x4ac62f]
je 0x41ad2b
cmp al, 0x2e
je 0x41ad2b
cmp dword [0x4ad378], 1
jne 0x41ac1a
cmp al, byte [0x4ad890]
je 0x41ad2b
mov byte [0x4ac62e], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
push 0xffffffffffffffff
push edi
mov edx, 0x4a2078
mov ecx, ebx
call fcn.00472b50
add esp, 8
test eax, eax
jne 0x41ac9f
test esi, esi
je 0x41ae92
mov al, byte [esi]
cmp al, 0x23
je 0x41ad2b
cmp al, byte [0x4ac62d]
je 0x41ad2b
cmp al, byte [0x4ac62e]
je 0x41ad2b
cmp al, 0x2e
je 0x41ad2b
cmp dword [0x4ad378], 1
jne 0x41ac8b
cmp al, byte [0x4ad890]
je 0x41ad2b
mov byte [0x4ac62f], 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.00472b50
add esp, 8
test eax, eax
jne 0x41ad01
test esi, esi
je 0x41acdf
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0x4ad36c
mov edx, 0x4ad361
mov ecx, esi
call fcn.00413670
add esp, 0xc
test al, al
jne 0x41ae92
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.0042e360
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.00472b50
add esp, 8
test eax, eax
jne 0x41ad58
test esi, esi
je 0x41ad42
mov ecx, esi
call fcn.0040ee90
test eax, eax
js 0x41ad2b
cmp eax, 0x64
jle 0x41ad44
push ebx
push str.Parameter_1_invalid.
mov ecx, ebp
call fcn.0042e360
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
xor eax, eax
mov byte [0x4af26d], 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.00472b50
add esp, 8
test eax, eax
jne 0x41a608
movsx eax, byte [0x4ac62f]
test esi, esi
mov edi, 0x49e065
cmovne edi, esi
push eax
push edi
call fcn.00486ac4
mov edx, eax
add esp, 8
mov ebp, 0x49e065
test edx, edx
je 0x41adba
lea ebp, [edx + 1]
jmp 0x41ada0
mov al, byte [ebp]
cmp al, 0x20
je 0x41adab
cmp al, 9
jne 0x41adae
inc ebp
jmp 0x41ada0
dec edx
mov ecx, edi
call fcn.0040aa20
mov byte [eax + 1], 0
cmp byte [edi], 0
mov esi, 5
je 0x41ae03
xor esi, esi
jmp 0x41add0
push dword [esi*4 + 0x4a3970]
push edi
call fcn.004855c8
add esp, 8
test eax, eax
je 0x41ae03
inc esi
cmp esi, 6
jne 0x41add0
mov ecx, dword [esp + 0x10]
push ebx
push str.Parameter_1_invalid.
call fcn.0042e360
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
cmp byte [ebp], 0
mov edi, 2
je 0x41ae43
xor edi, edi
push dword [edi*4 + 0x4a3960]
push ebp
call fcn.004855c8
add esp, 8
test eax, eax
je 0x41ae43
inc edi
cmp edi, 4
jne 0x41ae10
mov ecx, dword [esp + 0x10]
push ebp
push str.Parameter_2_invalid.
call fcn.0042e360
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
test esi, esi
je 0x41ae4c
cmp esi, 5
jne 0x41ae52
mov dword [0x4af9ac], edi
cmp esi, 1
je 0x41ae5c
cmp esi, 5
jne 0x41ae62
mov dword [0x4af9a8], edi
cmp esi, 3
je 0x41ae6c
cmp esi, 5
jne 0x41ae72
mov dword [0x4af9a4], edi
cmp esi, 2
je 0x41ae7c
cmp esi, 5
jne 0x41ae82
mov dword [0x4af9a0], edi
cmp esi, 4
je 0x41ae8c
cmp esi, 5
jne 0x41ae92
mov dword [0x4af99c], edi
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 8
ret 4