Function at 0x4220a0
Capabilities:
Check if file exists
Get file attributes
Get keyboard layout
Set current directory

Disassembly:
sub esp, 0x54
push ebx
mov bx, word [0x4d5a38]
push ebp
mov ebp, dword [esp + 0x64]
push esi
xor edx, edx
push edi
mov dword [esp + 0x18], 0x90020
mov word [esp + 0x1c], bx
mov word [esp + 0x1e], dx
mov esi, ebp
test ebp, ebp
je 0x42210d
movzx eax, word [ebp]
test ax, ax
je 0x42210d
jmp 0x4220e0
movzx edx, ax
lea ecx, [esp + 0x18]
mov eax, 0x20
lea esp, [esp]
cmp dx, ax
je 0x422127
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4220f0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4220e0
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422112
sub eax, edx
sar eax, 1
lea edi, [ebp + eax*2]
jmp 0x42216c
mov edi, esi
mov eax, esi
jmp 0x422130
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x42213d
cmp ecx, 9
jne 0x422142
add eax, 2
jmp 0x422130
movzx ecx, word [eax]
test cx, cx
je 0x42216c
cmp cx, bx
je 0x422153
mov esi, eax
jmp 0x42216e
movzx ecx, word [eax + 2]
add eax, 2
cmp ecx, 0x20
je 0x422153
cmp ecx, 9
je 0x422153
cmp word [eax], 0
mov esi, eax
jne 0x42216e
xor esi, esi
sub edi, ebp
sar edi, 1
push 0xffffffffffffffff
push edi
mov eax, 0x4b64b0
mov ecx, ebp
mov byte [esp + 0x74], 0
call fcn.00480050
add esp, 8
test eax, eax
je 0x42325a
push 0xffffffffffffffff
push edi
mov eax, 0x4b6abc
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
sete al
mov byte [esp + 0x6c], al
test al, al
jne 0x42325a
push 0xffffffffffffffff
push edi
mov eax, 0x4b6b3c
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x4221e3
mov dword [0x4d9878], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6b4c
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42220f
mov byte [0x4d984b], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6b64
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42223b
mov byte [0x4d984a], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6b7c
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x4222e4
mov dword [0x4d9864], 1
test esi, esi
je 0x4222d5
push 0x4b6b9c
push esi
call fcn.00499c29
add esp, 8
test eax, eax
jne 0x42228e
mov dword [0x4d9864], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0x4b6ba8
push esi
call fcn.00499c29
add esp, 8
test eax, eax
jne 0x4222b9
mov dword [0x4d9864], 3
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0x4b35d8
push esi
call fcn.00499c29
add esp, 8
test eax, eax
jne 0x4222d5
mov dword [0x4d9864], 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6bb8
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422310
or byte [0x4d9f54], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6bdc
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42233c
or byte [0x4d9f54], 2
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6c00
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422381
test esi, esi
je 0x42236b
push eax
call fcn.0040efc0
add esp, 4
mov byte [0x4d9f20], 0
cmp eax, 2
je 0x422372
mov byte [0x4d9f20], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b1954
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422448
xor ebp, ebp
cmp esi, ebp
jne 0x4223b4
mov dword [0x4d9890], ebp
lea eax, [ebp + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov edi, esi
call fcn.0040f670
mov dword [0x4d9890], eax
cmp eax, ebp
jne 0x4221d4
mov eax, dword [0x4d5b14]
mov edi, dword [eax + 0xb4]
mov ebx, dword [esp + 0x68]
push ebp
push ebp
push ebp
push 0x4b0cf8
push ebp
push 0xe3
mov dword [eax + 0xb4], ebp
push esi
mov ecx, ebx
mov byte [ebx + 0x49], 1
call fcn.00423b30
test eax, eax
je 0x423387
mov eax, dword [0x4d5b14]
mov byte [ebx + 0x49], 0
mov dword [eax + 0xb4], edi
mov esi, dword [ebx + 4]
call fcn.0040f5f0
mov dword [0x4d9890], eax
cmp eax, ebp
je 0x423387
mov byte [eax], 5
mov dword [eax + 0xc], esi
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x4b0cf8
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6c14
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42247b
test esi, esi
je 0x42246c
call fcn.00404070
mov dword [0x4d5a34], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 6
push 0x4b6c2c
push ebp
call fcn.0049a3aa
add esp, 0xc
test eax, eax
jne 0x42278a
push 3
lea eax, [ebp + 0xc]
push 0x4b3774
push eax
call fcn.0049a3aa
add esp, 0xc
test eax, eax
sete bl
movzx ecx, bl
neg ecx
sbb ecx, ecx
and ecx, 3
push 6
lea edi, [ebp + ecx*2 + 0xc]
push 0x4b377c
push edi
call fcn.0049a3aa
add esp, 0xc
test eax, eax
jne 0x4224da
test bl, bl
setne dl
inc dl
mov byte [esp + 0x14], dl
jmp 0x4224fd
push 5
push 0x4b35c0
push edi
call fcn.0049a3aa
add esp, 0xc
test eax, eax
jne 0x42277b
test bl, bl
setne al
add al, 3
mov byte [esp + 0x14], al
xor edi, edi
cmp esi, edi
jne 0x422516
mov dword [0x4d9890], edi
lea eax, [edi + 3]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov dx, word [0x4d5a38]
mov bx, word [0x4d5a3c]
mov ecx, esi
movzx eax, word [ecx]
test ax, ax
je 0x42254f
mov edi, edi
cmp ax, word [0x4d5a40]
je 0x4225a6
cmp ax, dx
je 0x4225a6
cmp ax, bx
je 0x4225a6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x422530
test edi, edi
je 0x422686
lea eax, [edi + 2]
call fcn.00403ff0
mov ebx, eax
mov eax, edi
sub eax, esi
xor ecx, ecx
sar eax, 1
mov dword [esp + 0x6c], ebx
mov word [edi], cx
call fcn.0041a2f0
movzx ebp, word [0x4d5a40]
mov ecx, ebx
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x42268e
lea esp, [esp]
cmp ax, bp
je 0x4225f0
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x422590
jmp 0x42268e
movzx eax, word [ecx]
test ax, ax
je 0x42254f
cmp ax, bx
je 0x4225d7
cmp ax, dx
jne 0x4225c6
test edi, edi
jne 0x4225d7
mov edi, ecx
add ecx, 2
jmp 0x422526
add ecx, 2
cmp word [ecx], 0
je 0x42254f
add ecx, 2
jmp 0x422526
mov ecx, dword [esp + 0x68]
push ebp
push 0x4b6c40
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp word [ecx], 0
je 0x42268e
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x422610.99
movzx edx, byte [eax + 0x42341c]
jmp dword [edx*4 + 0x4233f8]
mov eax, 7
mov word [edi], ax
jmp case.0x422610.99
mov edx, 8
jmp 0x422659
mov eax, 0xc
mov word [edi], ax
jmp case.0x422610.99
mov edx, 0xa
jmp 0x422659
mov eax, 0xd
mov word [edi], ax
jmp case.0x422610.99
mov edx, 9
jmp 0x422659
mov eax, 0xb
mov word [edi], ax
jmp case.0x422610.99
mov edx, 0x20
mov word [edi], dx
mov eax, edi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x422661
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.0049ad10
add esp, 0xc
mov ecx, edi
jmp 0x422580
mov dword [esp + 0x6c], 0x4b0cf8
movzx ebp, word [0x4d5a40]
mov ecx, esi
movzx eax, word [ecx]
test ax, ax
je 0x4226b1
nop
cmp ax, bp
je 0x4226e9
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4226a0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
push ecx
push esi
push edx
call fcn.0040f390
add esp, 0xc
test eax, eax
jne 0x4221d4
mov ecx, dword [esp + 0x68]
push 0x4b0cf8
push 0x4b3980
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp word [ecx], 0
je 0x4226b1
movzx eax, word [ecx + 2]
lea edi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x422705.99
movzx edx, byte [eax + 0x423458]
jmp dword [edx*4 + 0x423434]
mov eax, 7
mov word [edi], ax
jmp case.0x422705.99
mov edx, 8
jmp 0x42274e
mov eax, 0xc
mov word [edi], ax
jmp case.0x422705.99
mov edx, 0xa
jmp 0x42274e
mov eax, 0xd
mov word [edi], ax
jmp case.0x422705.99
mov edx, 9
jmp 0x42274e
mov eax, 0xb
mov word [edi], ax
jmp case.0x422705.99
mov edx, 0x20
mov word [edi], dx
mov eax, edi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x422756
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push edi
push ecx
call fcn.0049ad10
add esp, 0xc
mov ecx, edi
jmp 0x422697
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6cb8
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422939
test esi, esi
je 0x42292a
mov eax, 0x4b3d4c
mov ecx, esi
call fcn.00480360
test eax, eax
je 0x4228bc
mov ebx, 0x4b6cd0
call fcn.0040558a
test eax, eax
je 0x4221d4
push 0x64
add eax, 2
push eax
push 0x4d5a48
call fcn.0049d054
movzx ebx, word [0x4d5a40]
add esp, 0xc
xor eax, eax
mov word [0x4d5b10], ax
mov ecx, 0x4d5a48
lea esp, [esp]
movzx eax, word [ecx]
test ax, ax
je 0x4221d4
lea esp, [esp]
cmp ax, bx
je 0x422830
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x422810
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp word [ecx], 0
je 0x4221d4
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x422850.99
movzx edx, byte [eax + 0x423494]
jmp dword [edx*4 + 0x423470]
mov eax, 7
jmp 0x42288f
mov edx, 8
mov word [esi], dx
jmp case.0x422850.99
mov eax, 0xc
jmp 0x42288f
mov edx, 0xa
mov word [esi], dx
jmp case.0x422850.99
mov eax, 0xd
jmp 0x42288f
mov edx, 9
mov word [esi], dx
jmp case.0x422850.99
mov eax, 0xb
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x422897
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.0049ad10
add esp, 0xc
mov ecx, esi
jmp 0x422800
push 7
push 0x4b6cd8
push esi
call fcn.0049a3aa
add esp, 0xc
test eax, eax
jne 0x4228e4
mov byte [0x4d5a3b], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0x4d9f12
push 0x4d9f11
push 0x4d9f10
push 0x4d5a3a
push 0x4d988d
push 0x4d988f
push 0x4d5a13
push 0x4d5a12
push 0x4d988e
push 0x4d5a44
push 0x4d9f0c
push 0x4d9f08
mov eax, esi
call fcn.00412b70
add esp, 0x30
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6ce8
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42296c
test esi, esi
je 0x42295d
call fcn.004142c0
mov dword [0x4d5a14], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6d18
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x4229ae
test esi, esi
je 0x42299f
call fcn.004142c0
mov dword [0x4d5a30], eax
cmp eax, 0xa
jge 0x42299f
mov dword [0x4d5a30], 0xa
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6d38
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x4229f0
test esi, esi
je 0x4229e1
call fcn.004142c0
mov dword [0x4d5a2c], eax
cmp eax, 1
jge 0x4229e1
mov dword [0x4d5a2c], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6d68
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422a4d
test esi, esi
je 0x422a3e
call fcn.004142c0
cmp eax, 0xff
jle 0x422a2f
mov eax, 0xff
mov byte [0x4d54c3], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp eax, 1
jge 0x422a39
mov eax, 1
mov byte [0x4d54c3], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6d94
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422a92
test esi, esi
je 0x422a7c
push eax
call fcn.0040efc0
add esp, 4
mov byte [0x4d986f], 0
cmp eax, 2
je 0x422a83
mov byte [0x4d986f], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6db8
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422aef
test esi, esi
je 0x422ae0
call fcn.004142c0
cmp eax, 0xff
jle 0x422ad1
mov eax, 0xff
mov dword [0x4d5a28], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp eax, 1
jge 0x422adb
mov eax, 1
mov dword [0x4d5a28], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6dd0
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422b22
test esi, esi
je 0x422b13
call fcn.004142c0
mov dword [0x4d5a18], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6df4
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422b67
test esi, esi
je 0x422b51
push eax
call fcn.0040efc0
add esp, 4
mov byte [0x4d9f13], 0
cmp eax, 2
je 0x422b58
mov byte [0x4d9f13], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e04
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422b93
mov byte [0x4d9849], 1
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e28
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422bd0
mov edi, dword [esp + 0x68]
mov eax, esi
mov byte [edi + 0xae7], 1
call fcn.0041d360
mov dword [edi + 0xae8], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e44
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422c51
test esi, esi
je 0x422c42
call fcn.0041a3c0
fld qword [0x4cee98]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x422c0b
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x422c0f
fstp st(1)
jmp 0x422c11
fstp st(0)
fld qword [0x4ceda8]
fnstcw word [esp + 0x68]
movzx eax, word [esp + 0x68]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x6c], eax
fmulp st(1)
fldcw word [esp + 0x6c]
fistp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [0x4d5a24], eax
fldcw word [esp + 0x68]
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e54
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422cb2
test esi, esi
je 0x422ca3
call fcn.004142c0
mov dword [0x4d5a20], eax
test eax, eax
jns 0x422c92
mov dword [0x4d5a20], 0
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp eax, 0x1f4
jle 0x422ca3
mov dword [0x4d5a20], 0x1f4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6524
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422d99
test esi, esi
je 0x422d8a
cmp word [esi + 2], ax
jne 0x422d55
movzx eax, word [esi]
cmp eax, 0x23
je 0x42304b
cmp ax, word [0x4d5a3c]
je 0x42304b
cmp ax, word [0x4d5a40]
je 0x42304b
cmp ax, word [0x4d5a38]
je 0x42304b
cmp eax, 0x21
je 0x42304b
cmp eax, 0x5e
je 0x42304b
cmp eax, 0x2b
je 0x42304b
cmp eax, 0x24
je 0x42304b
cmp eax, 0x7e
je 0x42304b
cmp eax, 0x2a
je 0x42304b
cmp eax, 0x3c
je 0x42304b
cmp eax, 0x3e
je 0x42304b
push 0xf
push esi
push 0x4d54d0
call fcn.0049d054
add esp, 0xc
xor ecx, ecx
mov eax, 0x4d54d0
mov word [0x4d54ee], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x422d76
sub eax, edx
sar eax, 1
mov dword [0x4d54c4], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e6c
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422e11
test esi, esi
je 0x4221d4
movzx eax, word [esi]
cmp eax, 0x23
je 0x42304b
cmp ax, word [0x4d5a3c]
je 0x42304b
cmp ax, word [0x4d5a38]
je 0x42304b
cmp eax, 0x2e
je 0x42304b
cmp dword [0x4d54c4], 1
jne 0x422dfc
cmp ax, word [0x4d54d0]
je 0x42304b
mov word [0x4d5a40], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e84
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422e80
test esi, esi
je 0x4221d4
movzx eax, word [esi]
cmp ax, word [0x4d5a40]
je 0x42304b
cmp ax, word [0x4d5a38]
je 0x42304b
cmp eax, 0x2e
je 0x42304b
cmp dword [0x4d54c4], 1
jne 0x422e6b
cmp ax, word [0x4d54d0]
je 0x42304b
mov word [0x4d5a3c], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6e9c
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422ef8
test esi, esi
je 0x4221d4
movzx eax, word [esi]
cmp eax, 0x23
je 0x42304b
cmp ax, word [0x4d5a40]
je 0x42304b
cmp ax, word [0x4d5a3c]
je 0x42304b
cmp eax, 0x2e
je 0x42304b
cmp dword [0x4d54c4], 1
jne 0x422ee3
cmp ax, word [0x4d54d0]
je 0x42304b
mov word [0x4d5a38], ax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6eb4
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422f6b
test esi, esi
je 0x422f51
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 0x4d54c1
xor ecx, ecx
mov edi, 0x4d5a10
mov edx, esi
call fcn.00419580
add esp, 4
test al, al
jne 0x4221d4
mov ecx, dword [esp + 0x68]
mov eax, 0x4b3d84
push ebp
push eax
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov ecx, dword [esp + 0x68]
mov eax, 0x4b6ad8
push ebp
push eax
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6ed0
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x422fc5
test esi, esi
je 0x422faf
call fcn.004142c0
test eax, eax
js 0x42304b
cmp eax, 0x64
jg 0x42304b
mov byte [0x4d988c], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
xor eax, eax
mov byte [0x4d988c], al
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6ee8
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x423113
test esi, esi
jne 0x422fe8
mov esi, 0x4b0cf8
movzx edx, word [0x4d5a38]
push edx
push esi
call fcn.0049a90e
mov edi, eax
add esp, 8
mov ebx, 0x4b0cf8
test edi, edi
je 0x42301e
lea eax, [edi + 2]
call fcn.00403ff0
mov ebx, eax
lea eax, [edi - 2]
mov edx, esi
call fcn.0040ef40
xor ecx, ecx
mov word [eax + 2], cx
cmp word [esi], 0
mov edi, 6
je 0x423064
xor edi, edi
jmp 0x423030
mov edx, dword [edi*4 + 0x4b6ef4]
push edx
push esi
call fcn.00499c29
add esp, 8
test eax, eax
je 0x423064
inc edi
cmp edi, 7
jne 0x423030
mov ecx, dword [esp + 0x68]
push ebp
push 0x4b3d84
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp word [ebx], 0
mov esi, 2
je 0x4230a5
xor esi, esi
mov eax, dword [esi*4 + 0x4b6f10]
push eax
push ebx
call fcn.00499c29
add esp, 8
test eax, eax
je 0x4230a5
inc esi
cmp esi, 4
jne 0x423071
mov ecx, dword [esp + 0x68]
push ebx
push 0x4b3db0
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
test edi, edi
je 0x4230ae
cmp edi, 6
jne 0x4230b4
mov dword [0x4d984c], esi
cmp edi, 1
je 0x4230be
cmp edi, 6
jne 0x4230c4
mov dword [0x4d9850], esi
cmp edi, 3
je 0x4230ce
cmp edi, 6
jne 0x4230d4
mov dword [0x4d9854], esi
cmp edi, 2
je 0x4230de
cmp edi, 6
jne 0x4230e4
mov dword [0x4d9858], esi
cmp edi, 4
je 0x4230ee
cmp edi, 6
jne 0x4230f4
mov dword [0x4d985c], esi
cmp edi, 5
je 0x4230fe
cmp edi, 6
jne 0x423104
mov dword [0x4d9860], esi
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xffffffffffffffff
push edi
mov eax, 0x4b6f20
mov ecx, ebp
call fcn.00480050
add esp, 8
test eax, eax
jne 0x42277b
test esi, esi
jne 0x42314e
mov ecx, dword [esp + 0x68]
push 0x4b0cf8
push 0x4b6ad8
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
push 0xa
push 0x4afa70
push esi
call fcn.0049a3aa
add esp, 0xc
test eax, eax
jne 0x423245
movzx eax, word [esi + 0x14]
test ax, ax
je 0x4221d4
cmp eax, 0x20
je 0x423181
cmp eax, 9
jne 0x423245
lea eax, [esi + 0x16]
call fcn.00403ff0
movzx ecx, word [eax]
test cx, cx
je 0x423236
mov edi, eax
test cx, cx
je 0x4231b8
movzx ecx, cx
nop
cmp cx, 0x20
je 0x4231b8
cmp cx, 9
je 0x4231b8
movzx ecx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4231a0
mov ebp, edi
sub ebp, eax
sar ebp, 1
inc ebp
cmp ebp, 0x20
jbe 0x4231c9
mov ebp, 0x20
dec ebp
push ebp
push eax
lea edx, [esp + 0x28]
push edx
call fcn.0049d054
add esp, 0xc
lea ecx, [esp + 0x20]
xor eax, eax
push str.Unicode
push ecx
mov word [esp + ebp*2 + 0x28], ax
call fcn.00499c29
add esp, 8
test eax, eax
je 0x423223
lea edx, [esp + 0x20]
push str.32_bit
push edx
call fcn.00499c29
add esp, 8
test eax, eax
je 0x423223
push 0
lea eax, [esp + 0x24]
mov ecx, str.1.1.37.01
call fcn.004829b0
add esp, 4
test eax, eax
je 0x423245
mov eax, edi
call fcn.00403ff0
movzx ecx, word [eax]
test cx, cx
jne 0x423195
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov ebx, dword [esp + 0x68]
mov ecx, esi
call fcn.004234b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
test esi, esi
jne 0x423277
mov ecx, dword [esp + 0x68]
push ebp
push 0x4b6ad8
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
cmp word [esi], 0x2a
jne 0x42336e
movzx edi, word [esi + 2]
test edi, 0xffffff80
jne 0x42329f
push 2
push edi
call fcn.0049b90c
add esp, 8
test eax, eax
je 0x42329f
and edi, 0xffffffdf
cmp di, 0x49
jne 0x42336e
movzx eax, word [esi + 4]
cmp eax, 0x20
je 0x4232bb
cmp eax, 9
jne 0x42336e
mov byte [esp + 0x14], 1
add esi, 6
cmp word [esi], 0x3c
jne 0x423378
push 0x3e
push esi
call fcn.0049a90e
mov edi, eax
add esp, 8
test edi, edi
je 0x423378
cmp word [edi + 2], 0
jne 0x423378
xor eax, eax
add esi, 2
mov word [edi], ax
call fcn.0044b950
mov ebx, eax
push 0
lea ecx, [esp + 0x17]
push ecx
mov eax, edi
sub eax, esi
lea edx, [esp + 0x74]
push edx
sar eax, 1
push eax
push esi
mov esi, dword [esp + 0x7c]
mov ecx, esi
call fcn.0042b300
test ebx, ebx
je 0x42332f
push ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ebx
call fcn.0049a18d
add esp, 4
mov al, byte [esp + 0x6c]
test al, al
jne 0x42334b
cmp byte [esp + 0x13], al
jne 0x4221d4
cmp byte [esp + 0x14], al
jne 0x4221d4
mov ecx, 0x3e
mov word [edi], cx
test al, al
jne 0x423387
push ebp
push 0x4b6b04
mov ecx, esi
call fcn.0043a420
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov byte [esp + 0x14], 0
jmp 0x4232c3
push esi
lea edx, [esp + 0x1c]
push edx
call fcn.00439290
test eax, eax
jne 0x423393
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4233c6
test al, 0x10
je 0x4233c6
mov eax, edi
call fcn.0044b830
push edi
call fcn.0049a18d
mov eax, 3
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x70]
push edi
call fcn.0041f790
neg eax
sbb esi, esi
push edi
and esi, 3
call fcn.0049a18d
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8