Function at 0x418a70
Capabilities:
Get keyboard layout
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1a17c
call fcn.0049bfd0
mov eax, dword [esp + 0x1a180]
xor ecx, ecx
push ebx
lea edx, [esp + 0x224]
mov word [esp + 0x822c], cx
mov dword [esp + 0xc], edx
xor edx, edx
push ebp
lea ecx, [esp + 0x12178]
push esi
mov dword [esp + 0x30], ecx
mov word [esp + 0x3a], dx
mov edx, dword [esp + 0x1a190]
xor ecx, ecx
or esi, 0xffffffff
push edi
mov byte [esp + 0x17], 0
mov word [esp + 0x48], cx
mov dword [0x4cc788], edx
mov dword [esp + 0x60], esi
test eax, eax
je 0x418af7
push 1
push 0x4000
lea ecx, [esp + 0x238]
push ecx
push eax
call fcn.00474f70
test eax, eax
jne 0x418c2e
xor edx, edx
mov word [esp + 0x230], dx
mov dword [esp + 0x20], esi
push 2
lea eax, [esp + 0x234]
push 0x4a9778
push eax
call fcn.00492ab5
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x25], al
test al, al
je 0x418b30
xor ecx, ecx
mov word [esp + 0x230], cx
mov dword [esp + 0x20], ecx
lea ecx, [ecx]
cmp dword [esp + 0x20], 0xffffffff
je 0x41adda
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x18]
push 0xc
mov eax, 0x4cc518
inc edx
push 0x4a9780
xor edi, edi
push esi
mov dword [eax + 0x274], edx
mov dword [eax + 0x634], edi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x418b79
push esi
call fcn.0041b270
test eax, eax
je 0x41a6ed
mov byte [esp + 0x74], 0
mov dword [esp + 0x28], edi
mov ebx, dword [esp + 0x34]
inc dword [esp + 0x60]
mov esi, dword [esp + 0x28]
test ebx, ebx
je 0x418d9f
mov eax, dword [esp + 0x1a190]
mov ecx, esi
mov edx, ebx
call fcn.0041b090
mov ebp, eax
mov dword [esp + 0x64], ebp
test ebp, ebp
je 0x418da6
cmp ebp, 0xffffffff
je 0x418da6
test esi, esi
jne 0x418da6
push 2
push 0x4a979c
push ebx
call fcn.00492ab5
add esp, 0xc
test eax, eax
jne 0x418dbb
cmp byte [esp + 0x25], al
jne 0x418bf8
mov eax, 0x3a
cmp word [ebx + 4], ax
jne 0x418bf8
cmp word [ebx + 6], ax
je 0x418dc6
lea eax, [ebp + ebp - 2]
push eax
lea ecx, [ebx + 4]
push ecx
push ebx
mov byte [esp + 0x31], 0
call fcn.00491770
add esp, 0xc
lea eax, [ebp - 2]
mov edi, ebx
call fcn.00415340
cmp word [ebx], 0
mov ebp, eax
mov dword [esp + 0x64], ebp
je 0x418b82
jmp 0x418dc6
cmp word [esp + eax*2 + 0x22e], 0xa
jne 0x418c3a
dec eax
xor ecx, ecx
mov word [esp + eax*2 + 0x230], cx
mov eax, esi
lea edi, [esp + 0x230]
call fcn.00415340
mov esi, edi
call fcn.00415420
mov edx, dword [0x4c7404]
push edx
mov ebp, eax
mov eax, edi
push 0x4c7410
push eax
call fcn.00492ab5
add esp, 0xc
test eax, eax
jne 0x418c89
xor ecx, ecx
mov word [esp + 0x230], cx
mov dword [esp + 0x20], ecx
jmp 0x418afb
lea edx, [esp + 0x230]
push 0x4c7410
push edx
call fcn.00491af8
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x418d96
jmp 0x418cb0
lea eax, [ebx - 2]
lea ecx, [esp + 0x230]
cmp eax, ecx
jb 0x418d6a
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x418d7d
cmp ecx, 9
je 0x418d7d
lea edx, [esp + 0x230]
cmp eax, edx
mov dx, word [0x4c7980]
mov ecx, eax
jbe 0x418d09
jmp 0x418cf0
cmp word [ecx], dx
jne 0x418d09
cmp word [ecx - 2], dx
jne 0x418d09
sub ecx, 4
lea esi, [esp + 0x230]
cmp ecx, esi
ja 0x418cf0
lea esi, [esp + 0x230]
cmp ecx, esi
jb 0x418d40
cmp word [ecx], dx
jne 0x418d40
lea esi, [eax + 2]
mov ecx, esi
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x418d21
sub ecx, edi
sar ecx, 1
lea ecx, [ecx + ecx + 2]
push ecx
push esi
push eax
call fcn.00491770
add esp, 0xc
dec ebp
mov edx, dword [0x4c7404]
lea eax, [ebx + edx*2]
push 0x4c7410
push eax
call fcn.00491af8
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x418cb0
mov dword [esp + 0x20], ebp
jmp 0x418afb
xor eax, eax
mov word [esp + 0x230], ax
mov dword [esp + 0x20], eax
jmp 0x418afb
xor ecx, ecx
lea edx, [esp + 0x230]
mov word [eax], cx
sub eax, edx
sar eax, 1
mov esi, edx
call fcn.00415420
mov ebp, eax
mov dword [esp + 0x20], ebp
jmp 0x418afb
or ebp, 0xffffffff
mov dword [esp + 0x64], ebp
cmp byte [esp + 0x25], 0
je 0x418de4
cmp ebp, 0xffffffff
jne 0x418b82
jmp 0x419598
cmp byte [esp + 0x25], 0
jne 0x418b82
push 2
push 0x4a9778
push ebx
call fcn.00492ab5
add esp, 0xc
test eax, eax
jne 0x418da6
mov byte [esp + 0x25], 1
jmp 0x418b82
test esi, esi
jne 0x41935e
cmp ebp, 0xffffffff
je 0x418e5d
cmp word [ebx], 0x28
jne 0x418e5d
cmp word [ebx + 2], 0x3a
lea esi, [ebx + 2]
je 0x418e5d
cmp word [ebx + ebp*2 - 2], 0x3a
je 0x418e5d
mov dl, byte [0x4cbd6c]
mov eax, 1
mov byte [esp + 0x2f], dl
mov dword [esp + 0x28], eax
mov dword [esp + 0x6c], 0
mov byte [esp + 0x32], al
mov byte [esp + 0x31], 0
mov byte [esp + 0x2e], 0
mov byte [esp + 0x30], al
xor edx, edx
mov dword [esp + 0x90], 0xa
mov dword [esp + 0x68], eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x418e58
cmp eax, 9
jne 0x4190fb
add esi, 2
jmp 0x418e47
mov dword [esp + 0x28], 0
cmp ebp, 0xffffffff
je 0x419598
test ebp, ebp
je 0x418b82
cmp word [ebx + ebp*2 - 2], 0x3a
jne 0x418e88
cmp word [ebx], 0x2c
jne 0x419598
movzx esi, word [ebx]
test esi, 0xffffff80
jne 0x418ea5
push 2
push esi
call fcn.00491f4e
add esp, 8
test eax, eax
je 0x418ea5
and esi, 0xffffffdf
movzx eax, si
cmp eax, 0x41
je 0x41905b
cmp eax, 0x4f
je 0x419006
movzx eax, word [ebx]
cmp eax, 0x3a
je 0x418ecc
cmp eax, 0x2b
je 0x418ecc
cmp eax, 0x2d
jne 0x418ed6
cmp word [ebx + 2], ax
je 0x419598
push eax
push 0x4a97c0
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x419598
push 0x4a97e4
push ebx
call fcn.00491af8
mov edi, eax
add esp, 8
test edi, edi
je 0x4190b3
cmp word [ebx], 0x3a
jne 0x418f67
movzx eax, word [ebx + 2]
lea esi, [ebx + 2]
test ax, ax
je 0x418f5d
cmp ax, 0x3a
je 0x419598
movzx eax, ax
test eax, 0xffffff80
jne 0x418f3c
push 0x107
push eax
call fcn.00491f4e
add esp, 8
test eax, eax
jne 0x418f51
movzx edx, word [esi]
push edx
push 0x4a97ec
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x418f67
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x418f16
cmp word [esi], 0x3a
je 0x419598
cmp word [ebx], 0x2c
jne 0x418faf
lea eax, [ebx + 2]
call fcn.00409ea0
push 2
mov esi, eax
push 0x4a97e4
push esi
call fcn.00492ab5
add esp, 0xc
test eax, eax
je 0x419598
push 3
push 0x4a77fc
add esi, 0xfffffffe
push esi
call fcn.00492ab5
add esp, 0xc
test eax, eax
je 0x419598
jmp 0x4190b3
mov eax, ebx
cmp ebx, edi
jae 0x418fc2
cmp word [eax], 0x22
je 0x418fc2
add eax, 2
cmp eax, edi
jb 0x418fb5
cmp eax, edi
je 0x419598
movzx eax, word [edi + 4]
lea ecx, [edi + 4]
test ax, ax
je 0x419598
lea ebx, [ebx]
cmp ax, 0x22
je 0x418ff7
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x418fe0
jmp 0x419598
cmp word [ecx], 0
je 0x419598
jmp 0x4190b3
movzx esi, word [ebx + 2]
test esi, 0xffffff80
jne 0x419024
push 2
push esi
call fcn.00491f4e
add esp, 8
test eax, eax
je 0x419024
and esi, 0xffffffdf
cmp si, 0x52
jne 0x419598
movzx eax, word [ebx + 4]
lea ecx, [ebx + 4]
cmp eax, 0x20
je 0x419043
cmp eax, 9
jne 0x419598
movzx eax, word [ecx]
cmp eax, 0x20
je 0x419050
cmp eax, 9
jne 0x419055
add ecx, 2
jmp 0x419043
movzx eax, word [ecx]
push eax
jmp 0x41909e
push 3
push 0x4a97a4
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x419598
movzx eax, word [ebx + 6]
lea ecx, [ebx + 6]
cmp eax, 0x20
je 0x419088
cmp eax, 9
jne 0x419598
movzx eax, word [ecx]
cmp eax, 0x20
je 0x419095
cmp eax, 9
jne 0x41909a
add ecx, 2
jmp 0x419088
movzx ecx, word [ecx]
push ecx
push 0x4a97ac
call fcn.00491ad1
add esp, 8
test eax, eax
jne 0x419598
mov esi, dword [esp + 0x20]
lea edx, [esi + ebp]
cmp edx, 0x4000
jae 0x41ac03
cmp word [ebx], 0x2c
je 0x4190da
mov ecx, dword [esp + 0x18]
mov eax, 0x20
mov word [ecx + esi*2], ax
inc esi
mov eax, dword [esp + 0x18]
lea edx, [ebp + ebp + 2]
push edx
lea ecx, [eax + esi*2]
push ebx
push ecx
call fcn.00498b20
add esp, 0xc
add esi, ebp
mov dword [esp + 0x20], esi
jmp 0x418b82
cmp word [esi], dx
je 0x419354
mov ebx, 0x30
mov edi, esi
test esi, esi
je 0x419151
movzx eax, word [esi]
test ax, ax
je 0x419151
jmp 0x419120
movzx edx, ax
mov ecx, 0x4a780c
mov eax, 0x20
lea ecx, [ecx]
cmp dx, ax
je 0x419204
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x419130
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x419120
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419156
sub eax, edx
sar eax, 1
lea ebp, [esi + eax*2]
movzx edi, word [ebp]
push 4
xor eax, eax
push 0x4a9838
push esi
mov dword [esp + 0x64], edi
mov word [ebp], ax
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x4192a5
push 0xf
add esi, 8
lea ecx, [esp + 0x94]
push esi
push ecx
call fcn.00493864
movzx ebx, word [0x4c7980]
add esp, 0xc
xor edx, edx
mov word [esp + 0xae], dx
lea ecx, [esp + 0x90]
lea esp, [esp]
movzx eax, word [ecx]
test ax, ax
je 0x4191d9
cmp ax, bx
je 0x41920b
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4191c8
lea eax, [esp + 0x90]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4191e3
mov edi, dword [esp + 0x58]
sub eax, edx
sar eax, 1
mov dword [esp + 0x68], eax
mov ebx, 0x30
jmp 0x419332
mov ebp, edi
jmp 0x419168
cmp word [ecx], 0
je 0x4191d9
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x419227.99
movzx eax, byte [eax + 0x41aec8]
jmp dword [eax*4 + 0x41aea4]
mov edx, 7
mov word [esi], dx
jmp case.0x419227.99
mov eax, 8
jmp 0x419270
mov edx, 0xc
mov word [esi], dx
jmp case.0x419227.99
mov eax, 0xa
jmp 0x419270
mov edx, 0xd
mov word [esi], dx
jmp case.0x419227.99
mov eax, 9
jmp 0x419270
mov edx, 0xb
mov word [esi], dx
jmp case.0x419227.99
mov eax, 0x20
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
jmp 0x419280
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x419280
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.00491770
add esp, 0xc
mov ecx, esi
jmp 0x4191c0
push 5
push 0x4a9844
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x4192c4
cmp word [esi + 0xa], bx
setne byte [esp + 0x2f]
jmp 0x419332
push 5
push 0x4a9850
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x4192e3
cmp word [esi + 0xa], bx
setne byte [esp + 0x32]
jmp 0x419332
movzx eax, word [esi]
test ax, ax
je 0x419332
jmp 0x4192f0
movzx eax, ax
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x419302.38
movzx eax, byte [eax + 0x41aef8]
jmp dword [eax*4 + 0x41aee0]
mov byte [esp + 0x31], 1
jmp case.0x419302.38
mov byte [esp + 0x2e], 1
jmp case.0x419302.38
mov byte [esp + 0x30], 0
jmp case.0x419302.38
mov dword [esp + 0x28], 2
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4192f0
mov word [ebp], di
mov esi, ebp
movzx eax, word [esi]
cmp eax, 0x20
je 0x419345
cmp eax, 9
jne 0x41934a
add esi, 2
jmp 0x419338
cmp word [esi], 0
jne 0x419109
mov byte [esp + 0x74], 1
jmp 0x418b82
cmp ebp, 0xffffffff
je 0x41adb9
cmp ebp, 0xfffffffe
je 0x418b82
cmp word [ebx], 0x29
jne 0x419408
mov eax, ebx
mov dword [esp + 0x28], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419387
sub eax, edx
sar eax, 1
lea ecx, [ebx + eax*2 - 2]
lea ebx, [ebx]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x4193ad
cmp edx, 9
jne 0x4193b7
cmp ecx, ebx
je 0x4193d0
sub ecx, 2
dec eax
jmp 0x4193a0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
xor edx, edx
mov ebp, eax
add ebx, 2
mov word [ecx + 2], dx
dec ebp
jmp 0x419517
movzx edx, word [ecx]
cmp edx, 0x20
je 0x4193f0
cmp edx, 9
je 0x4193f0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
mov ebp, eax
add ebx, 2
dec ebp
jmp 0x419517
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
xor eax, eax
xor ebp, ebp
add ebx, 2
mov word [ecx], ax
dec ebp
jmp 0x419517
cmp byte [esp + 0x32], 0
mov edi, dword [esp + 0x34]
mov ebx, edi
je 0x419420
mov eax, ebp
mov esi, edi
call fcn.00415420
mov ebp, eax
cmp byte [esp + 0x2f], 0
je 0x419434
mov edi, dword [esp + 0x34]
mov eax, ebp
call fcn.00415340
mov ebp, eax
xor esi, esi
cmp byte [esp + 0x31], 0
je 0x419473
mov ax, word [0x4c7980]
push esi
push 0x4001
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x50]
push edx
mov word [esp + 0x54], ax
mov word [esp + 0x5c], ax
mov word [esp + 0x5e], ax
push edi
xor eax, eax
call fcn.00477b20
add esp, 0x1c
mov esi, eax
cmp byte [esp + 0x2e], 0
je 0x4194b8
mov ax, word [0x4c797c]
mov cx, word [0x4c7980]
push 0
push 0x4001
push 0xffffffffffffffff
push 1
mov word [esp + 0x4c], ax
mov word [esp + 0x56], ax
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x50]
push eax
push edi
xor eax, eax
mov word [esp + 0x60], cx
call fcn.00477b20
add esp, 0x1c
add esi, eax
cmp byte [esp + 0x30], 0
je 0x4194fd
mov ax, word [0x4c7978]
mov cx, word [0x4c7980]
push 0
push 0x4001
push 0xffffffffffffffff
push 1
mov word [esp + 0x4c], ax
mov word [esp + 0x56], ax
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x50]
push eax
push edi
xor eax, eax
mov word [esp + 0x60], cx
call fcn.00477b20
add esp, 0x1c
add esi, eax
test esi, esi
je 0x419517
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419506
sub eax, edx
sar eax, 1
mov ebp, eax
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
lea ecx, [esi + ebp]
add ecx, eax
cmp ecx, 0x4001
jae 0x41ac03
mov ecx, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x6c], ecx
cmp ecx, 1
jle 0x419567
test esi, esi
je 0x419567
cmp ebx, edi
jne 0x419567
lea edx, [esi + esi + 2]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x94]
push ecx
lea eax, [edx + eax*2]
push eax
call fcn.00498b20
add esp, 0xc
add dword [esp + 0x20], esi
test ebp, ebp
je 0x418b82
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
lea ecx, [ebp + ebp + 2]
push ecx
lea eax, [edx + esi*2]
push ebx
push eax
call fcn.00498b20
add esp, 0xc
add esi, ebp
mov dword [esp + 0x20], esi
jmp 0x418b82
mov word [ebp], di
mov ebp, dword [esp + 0x40]
lea esp, [esp]
cmp dword [esp + 0x20], 0
je 0x41a9b0
cmp word [esp + 0x8238], 0
je 0x419721
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
mov bl, byte [esp + 0x1f]
mov esi, 0x4cc518
mov edi, dword [esi + 0x274]
mov dword [esi + 0x274], ecx
cmp word [edx], 0x7b
je 0x41961c
test bl, bl
jne 0x41961c
test ebp, ebp
jne 0x41ac20
cmp dword [esi + 0x4c], ebp
je 0x4195ff
mov eax, dword [0x4c7a54]
cmp dword [eax + 0xb4], ebp
je 0x41ac41
push 0
push 0
push 0
push 0
push 0
push 3
lea ecx, [esp + 0x8250]
push ecx
mov ecx, esi
call fcn.0041ca00
jmp 0x41969b
mov eax, ebp
sub eax, 0
je 0x41965a
dec eax
je 0x419643
dec eax
jne 0x4196ad
lea esi, [esp + 0x8238]
call fcn.00421720
test eax, eax
je 0x41a6ed
jmp 0x4196ad
lea edx, [esp + 0x8238]
push edx
call fcn.00421240
test eax, eax
je 0x41a6ed
jmp 0x4196ad
mov eax, dword [0x4c7a54]
cmp dword [eax + 0xb4], 0
lea edx, [esp + 0x8238]
jne 0x41ac71
lea ecx, [esp + 0x10240]
push ecx
push edx
call fcn.00420810
test eax, eax
je 0x41a6ed
test bl, bl
je 0x4196ad
push 0
push 0
push 0
push 0x75
push esi
call fcn.0041efb0
test eax, eax
je 0x41a6ed
mov dword [esi + 0x634], 0
xor eax, eax
mov word [esp + 0x8238], ax
test ebp, ebp
je 0x419716
test bl, bl
jne 0x419716
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx + 2]
add ecx, 2
cmp eax, 0x20
je 0x4196c3
cmp eax, 9
je 0x4196c3
cmp word [ecx], 0
jne 0x4196ea
mov eax, 0x4cc518
mov dword [eax + 0x274], edi
jmp 0x41a9b0
mov eax, ecx
lea esi, [eax + 2]
nop
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4196f0
sub eax, esi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
push ecx
push eax
call fcn.00491770
add esp, 0xc
mov eax, 0x4cc518
mov dword [eax + 0x274], edi
mov ecx, dword [esp + 0x18]
cmp word [ecx], 0x7d
jne 0x41980b
mov esi, 0x4cc518
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x41980b
mov edx, dword [0x4c7a54]
cmp dword [edx + 0xb4], 0
jne 0x41980b
cmp dword [esi + 0x268], 0
je 0x419784
mov eax, dword [esi + 0x26c]
mov dword [esi + 0x268], 0
test eax, eax
je 0x4197be
push eax
call fcn.004915f6
add esp, 4
mov dword [esi + 0x26c], 0
jmp 0x4197be
dec eax
mov dword [esi + 0x4c], eax
mov edi, dword [esi + eax*4 + 0x50]
call fcn.004709f0
mov eax, dword [esi + 0x4c]
mov eax, dword [esi + eax*4 + 0x50]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
add esi, 0x64
push 0x2e
push esi
call fcn.00492aee
add esp, 8
test eax, eax
je 0x4197b9
xor ecx, ecx
mov word [eax], cx
jmp 0x4197be
xor edx, edx
mov word [esi], dx
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 2]
add eax, 2
cmp ecx, 0x20
je 0x4197c2
cmp ecx, 9
je 0x4197c2
cmp word [eax], 0
mov dword [esp + 0x18], eax
je 0x41a9b0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4197e4
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, 0x4cc518
mov dword [eax + 0x634], 0
jmp 0x4195a0
mov esi, 0x4cc518
cmp dword [esi + 0x268], 0
je 0x4198f1
mov eax, dword [0x4c7a54]
cmp dword [eax + 0xb4], 0
jne 0x4198f1
mov edi, dword [esp + 0x18]
push 3
push 0x4a993c
push edi
call fcn.0049115d
add esp, 0xc
test eax, eax
je 0x41985f
push 3
push 0x4a9944
push edi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41ac8b
lea esi, [edi + 6]
movzx eax, word [esi]
cmp eax, 0x20
je 0x41986f
cmp eax, 9
jne 0x419874
add esi, 2
jmp 0x419862
movzx eax, word [esi]
test ax, ax
je 0x419890
cmp eax, 0x7b
jne 0x41ac8b
cmp word [esi + 2], 0
jne 0x41ac8b
mov eax, 0x4cc518
mov eax, dword [eax + 0x26c]
lea edx, [esp + 0x8238]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x4198a4
lea ecx, [esp + 0x8238]
push 0x2e
push ecx
call fcn.00491ad1
mov dx, word [edi]
mov word [eax + 2], dx
add esp, 8
cmp word [esi], 0x7b
mov eax, 0x4cc518
mov eax, dword [eax + 0x274]
mov dword [esp + 0x4c], eax
sete byte [esp + 0x1f]
mov dword [esp + 0x40], 0
jmp 0x41a9b0
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x1f]
push ecx
mov eax, ebx
call fcn.00418840
add esp, 4
test al, al
je 0x41993e
lea edx, [esp + 0x8238]
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x419913
mov eax, 0x4cc518
mov edx, dword [eax + 0x274]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x40], 0
jmp 0x41a9b0
mov eax, dword [0x4c7a54]
cmp dword [eax + 0xb4], 0
jne 0x419b21
lea ecx, [esp + 0x1f]
push ecx
mov eax, ebx
call fcn.00418900
add esp, 4
test eax, eax
je 0x41999b
lea edx, [esp + 0x8238]
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x419970
mov eax, 0x4cc518
mov edx, dword [eax + 0x274]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x40], 1
jmp 0x41a9b0
cmp dword [esi + 0x4c], 0
je 0x419b21
mov esi, ebx
jmp 0x4199b0
movzx eax, word [esi]
test eax, 0xffffff80
jne 0x4199cc
push 0x107
push eax
call fcn.00491f4e
add esp, 8
test eax, eax
jne 0x4199de
movzx eax, word [esi]
cmp eax, 0x5f
je 0x4199de
cmp eax, 0x7f
ja 0x4199de
cmp eax, 0x2e
jne 0x4199e3
add esi, 2
jmp 0x4199b0
cmp esi, ebx
jbe 0x419a9f
jmp 0x4199f0
movzx eax, word [esi]
cmp eax, 0x20
je 0x4199fd
cmp eax, 9
jne 0x419a02
add esi, 2
jmp 0x4199f0
movzx eax, word [esi]
cmp eax, 0x3a
jne 0x419a26
cmp word [esi + 2], 0x3d
jne 0x419a26
push 0
push ebx
call fcn.004218c0
test eax, eax
je 0x41a6ed
jmp 0x41a9b0
test ax, ax
je 0x419a3c
cmp eax, 0x5b
je 0x419a3c
cmp eax, 0x7b
jne 0x419a9f
cmp word [esi + 2], 0
jne 0x419a9f
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419a41
sub eax, edx
sar eax, 1
cmp word [ebx + eax*2 - 2], 0x7b
sete cl
mov byte [esp + 0x1f], cl
test cl, cl
je 0x419a69
dec eax
mov esi, ebx
call fcn.00415420
lea edx, [esp + 0x8238]
mov eax, ebx
sub edx, ebx
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x419a74
mov eax, 0x4cc518
mov eax, dword [eax + 0x274]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], 2
jmp 0x41a9b0
push 6
push 0x4a68a4
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x419ad9
movzx eax, word [ebx + 0xc]
cmp eax, 0x20
je 0x419ac1
cmp eax, 9
jne 0x419ad9
push 1
add ebx, 0xe
push ebx
call fcn.004218c0
test eax, eax
je 0x41a6ed
jmp 0x41a9b0
cmp word [ebx], 0x23
jne 0x41aca8
mov edi, 0x4cc518
mov esi, dword [edi + 0x274]
push ebx
call fcn.0041b270
test eax, eax
je 0x41a6ed
cmp eax, 3
jne 0x41aca8
mov ecx, dword [esp + 0x1a194]
mov dword [edi + 0x270], ecx
mov dword [edi + 0x274], esi
jmp 0x41a9b0
mov ebx, dword [esp + 0x18]
xor esi, esi
xor ebp, ebp
cmp word [ebx], 0x3a
mov dword [esp + 0x28], esi
jne 0x419c09
movzx ecx, word [ebx + 2]
cmp cx, si
je 0x419c09
lea edi, [ebx + 2]
mov dword [esp + 0x7c], edi
cmp ecx, 0x3a
je 0x419b64
push 0x3a
push edi
call fcn.00491ad1
add esp, 8
cmp eax, esi
je 0x419c05
add eax, 2
jmp 0x419b71
cmp word [ebx + 4], si
lea eax, [ebx + 4]
je 0x419c09
mov dword [esp + 0x28], eax
cmp eax, esi
je 0x419c09
mov dl, byte [0x4cbd5f]
mov byte [esp + 0x26], dl
cmp edi, eax
jae 0x419bcc
jmp 0x419b90
movzx esi, word [edi]
test esi, 0xffffff80
jne 0x419bad
push 2
push esi
call fcn.00491f4e
add esp, 8
test eax, eax
je 0x419bad
and esi, 0xffffffdf
cmp si, 0x58
je 0x419bbe
add edi, 2
cmp edi, dword [esp + 0x28]
jb 0x419b90
jmp 0x419bc8
cmp word [edi + 2], 0x30
setne byte [esp + 0x26]
mov eax, dword [esp + 0x28]
mov edi, eax
movzx eax, word [edi]
mov cx, word [0x4c7980]
test ax, ax
je 0x419bfb
lea ecx, [ecx]
cmp ax, cx
je 0x419c69
cmp ax, 0x3a
je 0x419c69
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x419be0
xor esi, esi
cmp ebp, esi
jne 0x419d56
mov dword [esp + 0x28], esi
push 0x4a97e4
push ebx
call fcn.00491af8
mov ebp, eax
add esp, 8
cmp ebp, esi
je 0x41a527
cmp ebp, ebx
jne 0x419c2f
cmp word [ebp + 4], 0x3a
jne 0x419c2f
add ebp, 2
mov esi, ebp
cmp ebp, ebx
jbe 0x419c49
movzx eax, word [esi]
cmp eax, 0x20
je 0x419c42
cmp eax, 9
jne 0x419c49
sub esi, 2
cmp esi, ebx
ja 0x419c35
movzx edi, word [esi]
xor eax, eax
mov word [esi], ax
mov ecx, ebx
movzx eax, word [ecx]
cmp eax, 0x20
je 0x419c64
cmp eax, 9
jne 0x419d29
add ecx, 2
jmp 0x419c53
movzx eax, word [edi]
test ax, ax
je 0x419bfb
lea esi, [edi + 2]
cmp eax, 0x3a
jne 0x419c99
cmp word [esi], ax
jne 0x419d21
cmp byte [esp + 0x26], 0
mov ebp, edi
mov edi, esi
jne 0x419bfb
add edi, 2
jmp 0x419bce
movzx eax, word [esi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x419cab.99
movzx eax, byte [eax + 0x41af58]
jmp dword [eax*4 + 0x41af38]
mov ecx, 7
jmp 0x419ced
mov edx, 8
mov word [esi], dx
jmp case.0x419cab.99
mov eax, 0xc
mov word [esi], ax
jmp case.0x419cab.99
mov ecx, 0xa
jmp 0x419ced
mov edx, 0xd
mov word [esi], dx
jmp case.0x419cab.99
mov eax, 9
mov word [esi], ax
jmp case.0x419cab.99
mov ecx, 0xb
mov word [esi], cx
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419cf5
sub eax, edx
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push edi
call fcn.00491770
add esp, 0xc
cmp word [edi], 0x3a
jne 0x419d21
cmp word [esi], 0x3a
jne 0x419d21
mov edi, esi
add edi, 2
jmp 0x419bce
push 0
push 0
push ecx
call fcn.0040c370
add esp, 0xc
mov dword [esp + 0x78], eax
test eax, eax
je 0x419d49
cmp eax, 4
je 0x41a6ed
jmp 0x419d4b
xor ebp, ebp
mov word [esi], di
test ebp, ebp
je 0x41a527
cmp ebp, ebx
jbe 0x41a527
mov ecx, dword [0x4c7a54]
cmp dword [ecx + 0xb4], 0
mov ecx, 0x4cc518
jne 0x41acc5
mov eax, dword [ecx + 4]
test eax, eax
je 0x419d86
cmp byte [eax], 0x1a
je 0x41acdd
xor edx, edx
mov word [ebp], dx
add ebp, 4
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x28], edx
jne 0x41a200
cmp word [ebp], dx
je 0x419de2
mov edx, ebp
movzx eax, word [edx]
cmp eax, 0x20
je 0x419db2
cmp eax, 9
jne 0x419db7
add edx, 2
jmp 0x419da5
mov eax, edx
sub eax, ebp
sar eax, 1
je 0x419de2
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x419dc4
sub eax, esi
sar eax, 1
lea ecx, [eax + eax + 2]
push ecx
push edx
push ebp
call fcn.00491770
add esp, 0xc
cmp word [ebp], 0
je 0x41a200
cmp word [ebp + 2], 0
je 0x419f67
movzx eax, word [ebp + 2]
xor dl, dl
xor cl, cl
mov esi, ebp
test ax, ax
je 0x419ee8
mov edi, dword [esp + 0x5c]
nop
cmp ax, 0x20
je case.0x419e30.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x419e30.34
movzx eax, byte [eax + 0x41af90]
jmp dword [eax*4 + 0x41af70]
mov cl, 1
jmp case.0x419e30.36
mov dl, 1
jmp case.0x419e30.36
test cl, cl
jne 0x419e55
test dl, dl
jne 0x419e59
or edi, 1
jmp case.0x419e30.36
test dl, dl
je 0x419e60
or byte [esp + 0x16], 4
xor dl, dl
test cl, cl
je case.0x419e30.36
or byte [esp + 0x16], 8
jmp 0x419ed2
test cl, cl
jne 0x419e78
test dl, dl
jne 0x419e7c
or edi, 2
jmp case.0x419e30.36
test dl, dl
je 0x419e83
or byte [esp + 0x16], 1
xor dl, dl
test cl, cl
je case.0x419e30.36
or byte [esp + 0x16], 2
jmp 0x419ed2
test cl, cl
jne 0x419e9b
test dl, dl
jne 0x419e9f
or edi, 4
jmp case.0x419e30.36
test dl, dl
je 0x419ea6
or byte [esp + 0x16], 0x10
xor dl, dl
test cl, cl
je case.0x419e30.36
or byte [esp + 0x16], 0x20
jmp 0x419ed2
test cl, cl
jne 0x419ebe
test dl, dl
jne 0x419ec2
or edi, 8
jmp case.0x419e30.36
test dl, dl
je 0x419ec9
or byte [esp + 0x16], 0x40
xor dl, dl
test cl, cl
je case.0x419e30.36
or byte [esp + 0x16], 0x80
xor cl, cl
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x419e10
mov dword [esp + 0x5c], edi
push 0
mov ebp, esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
xor ecx, ecx
mov eax, esi
call fcn.00414480
add esp, 8
mov byte [esp + 0x17], al
test al, al
je 0x41a200
mov bl, al
mov esi, dword [esp + 0x18]
cmp word [esi], 0
je 0x41a029
movzx ecx, word [esi + 2]
mov eax, esi
add esi, 2
xor bl, bl
xor dl, dl
test cx, cx
je 0x41a023
mov edi, dword [esp + 0x54]
jmp 0x419f40
cmp cx, 0x20
je case.0x419f60.34
movzx ecx, word [eax]
add ecx, 0xffffffdf
cmp ecx, 0x5d
ja case.0x419f60.34
movzx ecx, byte [ecx + 0x41b010]
jmp dword [ecx*4 + 0x41aff0]
or bl, 0xff
mov byte [esp + 0x17], bl
jmp 0x419f0f
mov dl, 1
jmp case.0x419f60.36
mov bl, 1
jmp case.0x419f60.36
test dl, dl
jne 0x419f8e
test bl, bl
jne 0x419f92
or edi, 1
jmp case.0x419f60.36
test bl, bl
je 0x419f99
or byte [esp + 0x15], 4
xor bl, bl
test dl, dl
je case.0x419f60.36
or byte [esp + 0x15], 8
jmp 0x41a00b
test dl, dl
jne 0x419fb1
test bl, bl
jne 0x419fb5
or edi, 2
jmp case.0x419f60.36
test bl, bl
je 0x419fbc
or byte [esp + 0x15], 1
xor bl, bl
test dl, dl
je case.0x419f60.36
or byte [esp + 0x15], 2
jmp 0x41a00b
test dl, dl
jne 0x419fd4
test bl, bl
jne 0x419fd8
or edi, 4
jmp case.0x419f60.36
test bl, bl
je 0x419fdf
or byte [esp + 0x15], 0x10
xor bl, bl
test dl, dl
je case.0x419f60.36
or byte [esp + 0x15], 0x20
jmp 0x41a00b
test dl, dl
jne 0x419ff7
test bl, bl
jne 0x419ffb
or edi, 8
jmp case.0x419f60.36
test bl, bl
je 0x41a002
or byte [esp + 0x15], 0x40
xor bl, bl
test dl, dl
je case.0x419f60.36
or byte [esp + 0x15], 0x80
xor dl, dl
mov eax, esi
movzx ecx, word [eax + 2]
lea esi, [eax + 2]
test cx, cx
jne 0x419f40
mov dword [esp + 0x54], edi
mov bl, byte [esp + 0x17]
mov esi, eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
xor ecx, ecx
mov eax, esi
call fcn.00414480
push 0x4a77fc
push esi
mov byte [esp + 0x37], al
call fcn.00491af8
mov dl, byte [esp + 0x37]
add esp, 0x10
test eax, eax
setne byte [esp + 0x3a]
dec dl
cmp dl, 5
ja 0x41a068
cmp byte [esp + 0x27], 3
jne 0x41a072
mov al, byte [esp + 0x27]
add al, 0x66
cmp al, 5
ja 0x41a076
mov al, 1
jmp 0x41a078
xor al, al
lea ecx, [ebx - 1]
cmp cl, 5
ja 0x41a085
cmp bl, 3
jne 0x41a08d
add bl, 0x66
cmp bl, 5
ja 0x41a095
mov bl, 1
mov byte [esp + 0x2d], bl
jmp 0x41a09e
mov byte [esp + 0x2d], 0
mov bl, byte [esp + 0x2d]
test al, al
jne 0x41a0ab
mov byte [esp + 0x33], 1
test bl, bl
jne 0x41a0b0
mov byte [esp + 0x33], 0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41a0b5
sub eax, edx
sar eax, 1
cmp eax, 1
jne 0x41a0dc
movzx edx, word [esi]
push edx
call dword [sym.imp.USER32.dll_IsCharUpperW]
mov ecx, 0x4a9a34
test eax, eax
jne 0x41a0e1
mov ecx, 0x4a4910
cmp byte [esp + 0x3a], 0
mov eax, 0x4a4910
jne 0x41a0f2
mov eax, 0x4a968c
mov edx, dword [esp + 0x18]
push edx
push ecx
push eax
push 0x4a9a38
mov esi, 0x20
lea edi, [esp + 0x100]
call fcn.00477380
push 0x1f
lea eax, [esp + 0xc4]
push ebp
push eax
call fcn.00493864
mov esi, dword [esp + 0x3c]
add esp, 0x1c
push 7
lea edx, [esp + 0x84]
xor ecx, ecx
push esi
push edx
mov word [esp + 0xfa], cx
call fcn.00493864
xor eax, eax
sub ebp, esi
mov word [esp + 0x9a], ax
mov eax, ebp
sar eax, 1
add esp, 0xc
cmp eax, 8
jae 0x41a162
xor ecx, ecx
mov word [esp + eax*2 + 0x80], cx
cmp word [esp + 0x80], 0
mov dword [esp + 0x50], 0
jne 0x41a9b0
mov al, byte [esp + 0x17]
cmp al, 0xd
je 0x41a1de
cmp al, 0x13
jne 0x41a9b0
movzx esi, word [esp + 0xb0]
test esi, 0xffffff80
jne 0x41a1ab
push 2
push esi
call fcn.00491f4e
add esp, 8
test eax, eax
je 0x41a1ab
and esi, 0xffffffdf
cmp si, 0x50
je 0x41a1fb
movzx esi, word [esp + 0xb0]
test esi, 0xffffff80
jne 0x41a1d3
push 2
push esi
call fcn.00491f4e
add esp, 8
test eax, eax
je 0x41a1d3
and esi, 0xffffffdf
cmp si, 0x42
je 0x41a1fb
jmp 0x41a9bf
lea edx, [esp + 0xb0]
push 0x4a6190
push edx
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a9bf
mov byte [esp + 0x17], 0
mov ebx, 0x4cc518
cmp byte [ebx + 0x278], 0
je 0x41a242
push 0
push 0xff
push 0
push 0x67
push ebx
mov byte [ebx + 0x278], 0
call fcn.0041efb0
test eax, eax
je 0x41a6ed
mov eax, dword [ebx + 4]
mov dword [eax + 0xc], 1
mov dword [ebx + 0x634], 0
mov ebp, dword [esp + 0x18]
push 1
mov eax, ebp
call fcn.0041c8b0
test eax, eax
je 0x41a6ed
mov edi, dword [esp + 0x28]
test edi, edi
je 0x41a349
cmp word [edi], 0
je 0x41acfb
cmp byte [esp + 0x26], 0
mov esi, dword [esp + 0x20]
mov eax, 0x4a4910
jne 0x41a27f
mov eax, esi
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x7c]
push 0
push ecx
push eax
push edx
push ecx
mov ecx, dword [ebx + 0x14]
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebx + 0x14]
mov eax, dword [edx + 4]
push eax
call fcn.0040d5c0
add esp, 0x18
test eax, eax
je 0x41a6ed
cmp word [esi], 0
je 0x41a9b0
cmp byte [esp + 0x26], 0
je 0x41a324
mov ecx, esi
mov edi, edi
movzx eax, word [ecx]
cmp eax, 0x20
je 0x41a2cd
cmp eax, 9
jne 0x41a2d2
add ecx, 2
jmp 0x41a2c0
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
mov ebx, 0x4cc518
mov ecx, ebx
call fcn.0041ca00
test eax, eax
je 0x41a6ed
mov ecx, dword [ebx + 4]
mov al, byte [ecx]
cmp al, 9
jb 0x41a304
cmp al, 0x20
jbe 0x41ad15
cmp al, 0x21
je 0x41ad15
cmp al, 0x69
jb 0x41a318
cmp al, 0x6b
jbe 0x41ad15
cmp al, 0x6f
jb 0x41a324
cmp al, 0x71
jbe 0x41ad15
push 0
push 0
push 0
push 0x67
push ebx
call fcn.0041efb0
test eax, eax
je 0x41a6ed
mov edx, dword [ebx + 4]
mov dword [edx + 0xc], 1
jmp 0x41a9b0
mov edi, dword [esp + 0x20]
xor esi, esi
cmp word [edi], si
je 0x41a447
push 0x4a7338
push edi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a374
mov esi, 0x7ffe
jmp 0x41a427
push 0x4a7348
push edi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a390
mov esi, 0x7ffd
jmp 0x41a427
push 0x4a7360
push edi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a3ac
mov esi, 0x7ffc
jmp 0x41a427
push 0x4a7378
push edi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a3c5
mov esi, 0x7ffb
jmp 0x41a427
push 0x4a7394
push edi
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a3de
mov esi, 0x7ffa
jmp 0x41a427
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push esi
push edi
mov ecx, ebx
call fcn.0041ca00
test eax, eax
je 0x41a6ed
mov eax, dword [ebx + 4]
mov al, byte [eax]
cmp al, 9
jb 0x41a407
cmp al, 0x20
jbe 0x41ad38
cmp al, 0x21
je 0x41ad38
cmp al, 0x69
jb 0x41a41b
cmp al, 0x6b
jbe 0x41ad38
cmp al, 0x6f
jb 0x41a427
cmp al, 0x71
jbe 0x41ad38
push 0
push 0
push 0
push 0x67
push ebx
call fcn.0041efb0
test eax, eax
je 0x41a6ed
mov ecx, dword [ebx + 4]
mov dword [ecx + 0xc], 1
lea edx, [esp + 0x3b]
push edx
lea eax, [esp + 0x74]
push eax
push ebp
call fcn.0040cad0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x41a4c7
test si, si
je 0x41a46e
mov word [edi + 6], si
jmp 0x41a9b0
mov eax, dword [edi + 0x20]
test eax, eax
je 0x41a490
mov ecx, dword [0x4cb6dc]
jmp 0x41a480
cmp dword [eax + 4], ecx
je 0x41ad5b
mov eax, dword [eax + 8]
test eax, eax
jne 0x41a480
mov bl, byte [esp + 0x70]
mov esi, 0x4cc518
mov ecx, dword [esi + 0x14]
push ecx
call fcn.0040c250
test eax, eax
je 0x41ad82
cmp byte [esp + 0x3b], 0
jne 0x41a4be
cmp byte [0x4cbd6d], 0
je 0x41a9b0
mov byte [edi + 0x14], 1
jmp 0x41a9b0
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax + 4]
push edx
push ecx
push esi
push eax
xor bl, bl
call fcn.0040bbd0
add esp, 0x10
test eax, eax
jne 0x41a9b0
cmp dword [esp + 0x78], 3
jne 0x41a6ed
push ebp
push 0x4a9b10
mov esi, 0x80
lea edi, [esp + 0x138]
call fcn.00477380
fldz
fstp qword [esp]
mov edx, edi
push 0
push 0
push 0x10000
push edx
call fcn.0047c260
add esp, 0x18
jmp 0x41a9b0
mov esi, dword [esp + 0x20]
mov ebp, 0x3a
cmp word [ebx + esi*2 - 2], bp
jne 0x41a8fb
cmp esi, 1
je 0x41ad9c
movzx eax, word [ebx]
mov ecx, ebx
test ax, ax
je 0x41a592
mov dx, word [0x4c7978]
mov di, word [0x4c7980]
lea esp, [esp]
cmp ax, 0x20
je 0x41a8fb
cmp ax, 9
je 0x41a8fb
cmp ax, dx
je 0x41a8fb
cmp ax, di
je 0x41a8fb
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x41a560
cmp word [ebx + esi*2 - 4], bp
jne 0x41a5a2
cmp esi, 2
ja 0x41a8fb
xor eax, eax
push 0x4a9080
push ebx
mov word [ebx + esi*2 - 2], ax
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a5ee
mov ecx, 0x4cc518
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x41a5ee
mov eax, dword [eax + 0x10]
test eax, eax
je 0x41a5ee
cmp byte [eax], 0x73
jne 0x41a5ee
push 0
push 0
push 0
push 0x74
push ecx
call fcn.0041efb0
test eax, eax
je 0x41a6ed
jmp 0x41a9b0
cmp word [ebx], 0
je 0x41a6ed
mov eax, 0x4cc518
mov esi, dword [eax + 0x10]
test esi, esi
je 0x41a620
mov ecx, dword [esi + 4]
push ebx
push ecx
call fcn.00490f59
add esp, 8
test eax, eax
je 0x41a6a2
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x41a604
cmp word [ebx], 0
je 0x41a7a9
mov eax, ebx
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41a630
sub eax, edx
sar eax, 1
lea ebp, [eax + eax]
lea ebx, [ebp + 2]
lea edx, [ebx - 1]
mov dword [esp + 0x58], eax
cmp edx, 0xffff
ja 0x41a6d9
xor edi, edi
cmp dword [0x4cc494], edi
jne 0x41a6fc
push 0x10
call fcn.00492108
mov esi, eax
add esp, 4
cmp esi, edi
je 0x41a698
push 0x10000
mov dword [esi + 0xc], edi
call fcn.00490fe4
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x41a6bb
push esi
call fcn.004915eb
add esp, 4
mov esi, dword [0x4cc498]
xor eax, eax
jmp 0x41a6d0
push ebx
push 0x4aa184
mov ecx, 0x4cc518
call fcn.00430c90
test eax, eax
je 0x41a6ed
jmp 0x41a9b0
inc dword [0x4cc4a0]
mov dword [esi + 8], 0x10000
mov dword [0x4cc498], esi
mov eax, esi
mov dword [0x4cc494], eax
cmp eax, edi
jne 0x41a702
mov edx, dword [esp + 0x18]
push edx
push 0x4a76c0
mov ecx, 0x4cc518
call fcn.00430c90
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
mov esi, dword [0x4cc498]
cmp ebx, dword [esi + 8]
jbe 0x41a763
push 0x10
call fcn.00492108
mov esi, eax
add esp, 4
cmp esi, edi
je 0x41a739
push 0x10000
mov dword [esi + 0xc], edi
call fcn.00490fe4
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x41a743
push esi
call fcn.004915eb
add esp, 4
mov esi, dword [0x4cc498]
xor eax, eax
jmp 0x41a758
inc dword [0x4cc4a0]
mov dword [esi + 8], 0x10000
mov dword [0x4cc498], esi
mov eax, esi
mov dword [esi + 0xc], eax
cmp eax, edi
je 0x41a6d9
mov edi, dword [esi + 4]
mov eax, ebx
and eax, 3
mov dword [0x4cc49c], edi
je 0x41a778
sub ebx, eax
add ebx, 4
mov eax, ebx
sub dword [esi + 8], eax
lea ecx, [edi + eax]
mov dword [esi + 4], ecx
test edi, edi
je 0x41a6d9
cmp dword [esp + 0x58], 0
je 0x41a7a1
mov edx, dword [esp + 0x18]
push ebp
push edx
push edi
call fcn.00498b20
add esp, 0xc
xor eax, eax
mov word [edi + ebp], ax
jmp 0x41a7b4
mov esi, dword [0x4cc498]
mov edi, 0x4a4910
cmp dword [0x4cc494], 0
jne 0x41a81f
push 0x10
call fcn.00492108
mov esi, eax
add esp, 4
test esi, esi
je 0x41a7f3
push 0x10000
mov dword [esi + 0xc], 0
call fcn.00490fe4
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x41a7fd
push esi
call fcn.004915eb
add esp, 4
mov esi, dword [0x4cc498]
xor eax, eax
jmp 0x41a812
inc dword [0x4cc4a0]
mov dword [esi + 8], 0x10000
mov dword [0x4cc498], esi
mov eax, esi
mov dword [0x4cc494], eax
test eax, eax
je 0x41a8c2
cmp dword [esi + 8], 0x14
jae 0x41a881
push 0x10
call fcn.00492108
mov esi, eax
add esp, 4
test esi, esi
je 0x41a85b
push 0x10000
mov dword [esi + 0xc], 0
call fcn.00490fe4
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x41a865
push esi
call fcn.004915eb
add esp, 4
mov esi, dword [0x4cc498]
xor eax, eax
jmp 0x41a87a
inc dword [0x4cc4a0]
mov dword [esi + 8], 0x10000
mov dword [0x4cc498], esi
mov eax, esi
mov dword [esi + 0xc], eax
test eax, eax
je 0x41a8c2
mov eax, dword [esi + 4]
add dword [esi + 8], 0xffffffec
lea ecx, [eax + 0x14]
mov dword [0x4cc49c], eax
mov dword [esi + 4], ecx
test eax, eax
je 0x41a8c2
xor ecx, ecx
mov dword [eax], vtable.Label.0
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov ebx, 0x4cc518
mov edx, dword [ebx + 0x14]
mov dword [eax + 0xc], edx
mov esi, eax
cmp dword [ebx + 0x10], ecx
jne 0x41a8d1
mov dword [ebx + 0x10], eax
jmp 0x41a8d7
push 0x4a4910
push 0x4a76c0
jmp 0x41a6a8
mov ecx, dword [ebx + 0x14]
mov dword [ecx + 0x10], eax
push 0x4aa1a8
push edi
mov dword [ebx + 0x14], eax
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41a9b0
mov dword [ebx + 0xa8c], esi
jmp 0x41a9b0
cmp word [ebx], 0x23
jne 0x41a937
mov edi, 0x4cc518
mov esi, dword [edi + 0x274]
push ebx
call fcn.0041b270
test eax, eax
je 0x41a6ed
cmp eax, 3
jne 0x41a937
mov edx, dword [esp + 0x1a194]
mov dword [edi + 0x270], edx
mov dword [edi + 0x274], esi
jmp 0x41a9b0
movzx eax, word [ebx]
cmp eax, 0x7b
je 0x41a965
cmp eax, 0x7d
je 0x41a965
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
mov ecx, 0x4cc518
call fcn.0041ca00
test eax, eax
je 0x41a6ed
jmp 0x41a9b0
cmp eax, 0x7b
push 0
setne al
add al, 0x75
push 0
movzx ecx, al
push 0
push ecx
mov eax, 0x4cc518
push eax
call fcn.0041efb0
test eax, eax
je 0x41a6ed
lea eax, [ebx + 2]
lea ecx, [ecx]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x41a99d
cmp ecx, 9
jne 0x41a9a2
add eax, 2
jmp 0x41a990
cmp word [eax], 0
mov dword [esp + 0x18], eax
jne 0x41ab21
cmp byte [esp + 0x17], 0
je case.0x41a9d9.4
mov bl, byte [esp + 0x2d]
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
dec eax
cmp eax, 9
ja case.0x41a9d9.4
movzx edx, byte [eax + 0x41b084]
jmp dword [edx*4 + 0x41b070]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xf0]
push eax
push 0x4a9c38
push ecx
call fcn.004914e6
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x419b1d
mov edi, dword [esp + 0x18]
mov eax, 0x4a7330
mov edx, edi
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x41aa10
push 0
test bl, bl
setne al
add al, 0xc3
push 1
movzx ecx, al
lea edx, [esp + 0x20]
push edx
push ecx
mov eax, 0x4cc518
push eax
call fcn.0041efb0
cmp byte [esp + 0x33], 0
je 0x41aa70
lea edx, [esp + 0xb0]
push edx
push 0x4a9c44
push edi
call fcn.004914e6
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], 9
jmp 0x419b1d
mov edi, dword [esp + 0x18]
mov al, byte [esp + 0x17]
mov ecx, 0x4a4910
cmp al, 0x12
je 0x41aa85
cmp al, 0xa3
jbe 0x41aaa5
cmp al, 0xa5
ja 0x41aaa5
movzx eax, byte [esp + 0x27]
sub eax, 0x11
je 0x41aaa0
sub eax, 0x91
je 0x41aaa0
dec eax
jne 0x41aaa5
mov ecx, 0x4a9c90
jmp 0x41aaa5
mov ecx, 0x4a9c78
lea eax, [esp + 0xb0]
push eax
lea edx, [esp + 0x84]
push edx
push ecx
push 0x4a9ca8
mov esi, 0x4cc518
xor ebx, ebx
push edi
mov dword [esi + 0x634], ebx
call fcn.004914e6
add esp, 0x14
push ebx
push 1
lea eax, [esp + 0x20]
push eax
push 0x41
push esi
call fcn.0041efb0
test eax, eax
je 0x41a6ed
push ebx
push ebx
push ebx
push 0x67
push esi
call fcn.0041efb0
lea ecx, [esp + 0xf0]
push ecx
push 0x4a9cd4
push edi
mov dword [esi + 0x634], ebx
call fcn.004914e6
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], 2
jmp 0x419b1d
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41ab24
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, 0x4cc518
mov dword [eax + 0x634], 0
jmp 0x419598
mov edi, dword [esp + 0x18]
mov eax, 0x4a7330
mov edx, edi
sub edx, eax
jmp 0x41ab60
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x41ab60
push 0
test bl, bl
setne al
push 1
add al, 0xc3
lea edx, [esp + 0x20]
movzx ecx, al
push edx
push ecx
mov esi, 0x4cc518
push esi
call fcn.0041efb0
lea edx, [esp + 0xb0]
push edx
push 0x4a9ce4
push edi
call fcn.004914e6
add esp, 0xc
push 0
push 1
lea eax, [esp + 0x20]
push eax
push 0x41
push esi
call fcn.0041efb0
push 0
push 0
push 0
push 0x67
push esi
call fcn.0041efb0
mov byte [esp + 0x17], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x230]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
cmp eax, edx
jne 0x41abf3
lea eax, [esp + 0x12180]
mov dword [esp + 0x34], eax
jmp 0x418b30
lea ecx, [esp + 0x230]
mov dword [esp + 0x34], ecx
jmp 0x418b30
push ebx
push 0x4a97f8
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
lea eax, [esp + 0x8238]
push eax
push 0x4a98c0
mov ecx, esi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
cmp dword [esi + 0x268], 0
mov eax, 0x4a98c0
jne 0x41ac54
mov eax, 0x4a98d8
lea ecx, [esp + 0x8238]
push ecx
push eax
mov ecx, esi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push edx
push 0x4a9878
mov ecx, esi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push edi
push 0x4a9950
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebx
push 0x4a98d8
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebx
push 0x4a9998
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebx
push 0x4a9a04
mov dword [ecx + 0x634], eax
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebp
push 0x4a9a48
mov ecx, ebx
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
mov ecx, 0x3a
push ebp
mov word [esi - 4], cx
push 0x4a9aa0
mov ecx, ebx
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebp
mov edx, 0x3a
push 0x4a9aa0
mov ecx, ebx
mov word [edi - 4], dx
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebp
mov ecx, 0x4cc518
push 0x4a9aec
mov dword [ecx + 0x634], 0
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebp
push 0x4a76c0
mov ecx, esi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push ebx
push 0x4a9bd8
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
mov eax, dword [esp + 0x18]
push eax
push 0x4a985c
mov ecx, 0x4cc518
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
cmp word [esp + 0x8238], 0
je 0x41ae5c
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 0x4c]
mov edi, 0x4cc518
mov esi, dword [edi + 0x274]
mov dword [edi + 0x274], ecx
je 0x41ae33
cmp byte [esp + 0x1f], 0
mov eax, 0x4a9d04
jne 0x41ae16
mov eax, 0x4a98c0
lea edx, [esp + 0x8238]
push edx
push eax
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
push 0
push 0
push 0
push 0
push 0
push 3
lea eax, [esp + 0x8250]
push eax
mov ecx, edi
call fcn.0041ca00
test eax, eax
je 0x41a6ed
mov dword [edi + 0x274], esi
mov ecx, 0x4cc518
cmp dword [ecx + 0x4c], 0
je 0x41ae8c
cmp dword [esp + 0x1a194], 0
jne 0x41ae8c
lea edx, [ecx + 0x64]
push edx
push 0x4a9d04
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a17c
ret 8
pop edi
pop esi
mov eax, 1
add dword [ecx + 0x274], eax
pop ebp
pop ebx
add esp, 0x1a17c
ret 8