Function at 0x427860
Capabilities:
Get keyboard layout

Disassembly:
mov eax, 0x1940
call fcn.0049ffc0
push ebx
mov ebx, dword [esp + 0x1954]
push ebp
mov ebp, dword [esp + 0x194c]
push esi
push edi
mov edi, dword [esp + 0x1964]
cmp ebx, 0xff
jl 0x42789f
sub ebx, 0xff
mov dword [esp + 0x1960], ebx
mov byte [esp + 0x26], 0
jmp 0x4278a8
cmp byte [ebp + 0x49], 0
sete byte [esp + 0x26]
xor esi, esi
mov byte [esp + 0x27], 0
cmp ebx, esi
jne 0x42797a
mov dword [esp + 0x20], esi
cmp dword [0x4bc38c], 0
jne 0x4278d6
call fcn.0047c7a0
mov dword [0x4bc38c], eax
test eax, eax
je 0x42842d
mov edx, dword [0x4bc390]
cmp dword [edx + 8], 0x24
jae 0x4278f8
call fcn.0047c7a0
mov ecx, dword [0x4bc390]
mov dword [ecx + 0xc], eax
test eax, eax
je 0x42842d
mov eax, dword [0x4bc390]
mov edi, dword [eax + 4]
add dword [eax + 8], 0xffffffdc
xor ecx, ecx
lea edx, [edi + 0x24]
mov dword [0x4bc394], edi
mov dword [eax + 4], edx
cmp edi, ecx
je 0x42842d
mov eax, dword [esp + 0x1954]
mov esi, dword [eax + 0x174]
movzx ebp, word [eax + 0x170]
mov bl, byte [esp + 0x1958]
mov edx, dword [esp + 0x1960]
mov dword [edi + 4], esi
mov esi, dword [esp + 0x20]
mov byte [edi], bl
mov byte [edi + 1], dl
mov word [edi + 2], bp
mov dword [edi + 8], esi
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
mov esi, dword [eax + 4]
mov dword [edi + 0x10], esi
mov dword [esp + 0x18], edi
cmp dword [eax], ecx
jne 0x428450
mov dword [eax], edi
jmp 0x428456
mov eax, ebx
shl eax, 4
call fcn.0047c730
mov dword [esp + 0x20], eax
cmp eax, esi
jne 0x4279aa
push 0x4a7935
push 0x4aa228
mov ecx, ebp
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov dword [esp + 0x28], esi
cmp ebx, esi
jle 0x4278bb
jmp 0x4279c0
mov ecx, dword [esp + 0x195c]
mov ebp, dword [ecx + esi*4]
test edi, edi
je 0x4279d3
mov edi, dword [edi + esi*4]
jmp 0x4279d5
xor edi, edi
mov ebx, esi
shl ebx, 4
add ebx, eax
cmp byte [esp + 0x1958], 0x69
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], ebx
mov byte [ebx + 1], 0
jne 0x427a16
cmp esi, 1
jne 0x427a16
mov edx, ecx
mov eax, dword [edx]
test eax, eax
je 0x427a16
push 0x4ac220
push eax
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x427a16
mov byte [ebx], 1
jmp 0x427a26
mov al, byte [esp + 0x1958]
mov ecx, esi
call fcn.0041ca20
mov byte [ebx], al
mov al, byte [ebp]
cmp al, byte [0x4b79d3]
jne 0x427b04
test edi, edi
je 0x427a42
cmp byte [edi], 0
jne 0x427b04
mov cl, byte [ebp + 1]
cmp cl, 0x20
je 0x427a53
cmp cl, 9
jne 0x427b04
mov al, byte [ebx]
cmp al, 2
je 0x428359
cmp al, 1
mov al, byte [esp + 0x1958]
jne 0x427a7c
cmp al, 0x38
je 0x428359
cmp al, 9
jb 0x427a7c
cmp al, 0x20
jbe 0x428359
add ebp, 2
mov word [ebx], pe_nt_image_headers32
test edi, edi
je 0x427a8f
add edi, 2
mov dword [esp + 0x10], edi
cmp al, 1
jne 0x427a9b
mov byte [esp + 0x1958], 2
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x427aa0
sub eax, edx
mov word [ebx + 2], ax
movzx edi, ax
test ebp, ebp
je 0x427bc9
cmp byte [ebp], cl
je 0x427bc9
cmp edi, 0xffffffff
jne 0x427adb
mov eax, ebp
lea edx, [eax + 1]
jmp 0x427ad0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x427ad0
sub eax, edx
mov edi, eax
lea eax, [edi + 1]
call fcn.0047c730
mov esi, eax
test esi, esi
jne 0x427bb2
push ebp
push 0x4aa228
mov ecx, 0x4bc460
call fcn.0043b780
xor eax, eax
jmp 0x427bce
cmp byte [ebx], 0
je 0x427a9b
test al, al
jne 0x427b11
mov byte [ebx], al
jmp 0x427a9b
xor esi, esi
mov ecx, ebp
sub edi, ebp
cmp al, byte [0x4b79d3]
jne 0x427b2c
cmp dword [esp + 0x10], 0
je 0x427b35
cmp byte [edi + ecx], 0
je 0x427b35
mov al, byte [ecx + 1]
inc ecx
inc esi
test al, al
jne 0x427b17
cmp byte [esi + ebp], 0
jne 0x427a9b
mov esi, dword [esp + 0x1954]
lea eax, [esp + 0x33]
push eax
push 3
lea ecx, [esp + 0x3c]
push ecx
push 0
push ebp
mov ecx, esi
call fcn.0042e650
test eax, eax
jne 0x427b82
mov eax, dword [esp + 0x34]
xor edx, edx
cmp byte [esp + 0x33], dl
setne dl
xor ecx, ecx
inc edx
push edx
push eax
push esi
mov edx, ebp
call fcn.0042e8f0
test eax, eax
je 0x428e1e
cmp byte [ebx], 2
jne 0x427b9d
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x427b94
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 2
ja 0x428378
xor edx, edx
mov dword [ebx + 4], 0x4a7935
mov word [ebx + 2], dx
mov dword [ebx + 8], eax
jmp 0x42832f
test edi, edi
je 0x427bc1
push edi
push ebp
push esi
call fcn.0049b620
add esp, 0xc
mov byte [esi + edi], 0
mov eax, esi
jmp 0x427bce
mov eax, 0x4a7935
mov dword [ebx + 4], eax
test eax, eax
je 0x428e1e
cmp byte [eax], 0
mov dword [esp + 0x14], 0
je 0x427c7d
mov eax, dword [esp + 0x1960]
mov bl, byte [esp + 0x1958]
mov edi, dword [esp + 0x195c]
push eax
movzx eax, bl
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x2c]
lea ecx, [ecx*2 + 0x4b7a8f]
call fcn.00427750
add esp, 4
test al, al
je 0x427c79
cmp bl, 2
je 0x427c71
cmp bl, 0x6a
jb 0x427c32
cmp bl, 0x6c
jbe 0x427c71
cmp bl, 0x72
jb 0x427c3c
cmp bl, 0x74
jbe 0x427c71
mov esi, dword [esp + 0x1c]
mov ebp, dword [esi + 4]
mov edi, 0x4ac25c
mov eax, ebp
call fcn.004055c0
test eax, eax
jne 0x427c71
cmp bl, 0x2b
jne 0x427c5d
cmp byte [esi + 1], al
jne 0x427c79
mov esi, dword [esp + 0x10]
mov ecx, ebp
call fcn.004277f0
mov ecx, dword [esp + 0x1c]
mov byte [ecx + 1], al
jmp 0x427c79
mov edx, dword [esp + 0x1c]
mov byte [edx + 1], 1
mov ebx, dword [esp + 0x1c]
cmp byte [ebx + 1], 0
je 0x428254
mov eax, dword [ebx + 4]
push 0
push 1
push 1
push 1
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x427cbd
mov al, byte [esp + 0x1958]
cmp al, 2
je 0x427cbd
cmp al, 0x6a
jb 0x427cb1
cmp al, 0x6c
jbe 0x427cbd
cmp al, 0x72
jb 0x427cb9
cmp al, 0x74
jbe 0x427cbd
mov byte [ebx + 1], 0
cmp byte [ebx + 1], 0
je 0x428254
mov esi, dword [ebx + 4]
cmp byte [esi], 0
je 0x428324
cmp byte [esi], 0x2e
jne 0x427ce1
cmp byte [esi + 1], 0x3d
jne 0x427ce1
add esi, 2
cmp byte [esi], 0
je 0x42819d
lea ebx, [ebx]
movsx eax, byte [esi]
push eax
push 0x4ac274
call fcn.004945a1
add esp, 8
test eax, eax
je 0x427d0b
inc esi
cmp byte [esi], 0
jne 0x427cf0
mov al, byte [esi]
test al, al
je 0x42819d
cmp al, 0x22
jne 0x427d3a
lea ebx, [esi + 1]
lea esp, [esp]
mov al, byte [ebx]
test al, al
je 0x428392
cmp al, 0x22
jne 0x427d37
inc ebx
cmp byte [ebx], al
jne 0x428192
inc ebx
jmp 0x427d20
lea ebp, [esi + 1]
mov ebx, ebp
movsx eax, byte [ebx]
push eax
push 0x4ac274
mov dword [esp + 0x20], ebp
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x427d73
movsx eax, byte [ebx + 1]
inc ebx
push eax
push 0x4ac274
call fcn.004945a1
add esp, 8
test eax, eax
je 0x427d58
mov dword [esp + 0x18], ebx
cmp byte [ebx], 0x3d
jne 0x427d83
cmp byte [ebx - 1], 0x2e
jne 0x427d83
dec ebx
mov dword [esp + 0x18], ebx
cmp byte [esi], 0x2e
jne 0x427da2
movsx eax, byte [ebp]
push eax
push 0x4ac2a0
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x428192
mov ecx, ebx
mov al, byte [ecx]
cmp al, 0x20
je 0x427dae
cmp al, 9
jne 0x427db1
inc ecx
jmp 0x427da4
cmp byte [ecx], 0x3a
jne 0x427e45
cmp byte [ecx + 1], 0x3d
je 0x427e45
mov edx, dword [esp + 0x1c]
lea eax, [esi - 1]
cmp eax, dword [edx + 4]
jbe 0x427de2
mov cl, byte [eax]
cmp cl, 0x20
je 0x427ddc
cmp cl, 9
jne 0x427de2
dec eax
cmp eax, dword [edx + 4]
ja 0x427dd0
mov al, byte [eax]
cmp al, 0x2c
je 0x427dec
cmp al, 0x7b
jne 0x427e45
mov edi, esi
mov edi, edi
movzx eax, byte [edi]
test eax, 0xffffff80
jne 0x427e0c
push 0x107
push eax
call fcn.00493e17
add esp, 8
test eax, eax
jne 0x427e16
mov al, byte [edi]
cmp al, 0x5f
je 0x427e16
cmp al, 0x7f
jbe 0x427e19
inc edi
jmp 0x427df0
cmp byte [edi], 0x2e
je 0x427e45
cmp edi, ebx
je 0x428192
mov ecx, dword [esp + 0x1954]
push esi
push 0x4ac2a4
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov eax, ebx
sub eax, esi
lea ecx, [eax - 2]
mov dword [esp + 0x2c], eax
cmp ecx, 1
ja case.0x427e9d.66
cmp eax, 2
jne 0x427e87
mov al, byte [esi]
cmp al, 0x6f
je 0x427e6c
cmp al, 0x4f
jne case.0x427e9d.66
mov al, byte [ebp]
cmp al, 0x72
je 0x427e7b
cmp al, 0x52
jne case.0x427e9d.66
mov byte [esi], 0x7c
mov byte [ebp], 0x7c
jmp 0x428192
movsx eax, byte [esi]
add eax, 0xffffffbf
cmp eax, 0x2d
ja case.0x427e9d.66
movzx edx, byte [eax + 0x42a870]
jmp dword [edx*4 + 0x42a864]
mov al, byte [ebp]
cmp al, 0x6e
je 0x427eb3
cmp al, 0x4e
jne case.0x427e9d.66
mov al, byte [esi + 2]
cmp al, 0x64
je 0x427ec2
cmp al, 0x44
jne case.0x427e9d.66
mov byte [esi], 0x26
mov byte [ebp], 0x26
mov byte [esi + 2], 0x20
jmp 0x428192
mov al, byte [ebp]
cmp al, 0x6f
je 0x427edd
cmp al, 0x4f
jne 0x427ef2
mov cl, byte [esi + 2]
cmp cl, 0x74
je 0x428192
cmp cl, 0x54
je 0x428192
cmp al, 0x65
je 0x427efa
cmp al, 0x45
jne case.0x427e9d.66
mov al, byte [esi + 2]
cmp al, 0x77
je 0x427f05
cmp al, 0x57
jne case.0x427e9d.66
mov al, byte [esi + 3]
cmp al, 0x20
je 0x427f10
cmp al, 9
jne case.0x427e9d.66
lea edi, [esi + 4]
mov al, byte [edi]
cmp al, 0x20
je 0x427f1d
cmp al, 9
jne 0x427f20
inc edi
jmp 0x427f13
movsx eax, byte [edi]
push eax
push 0x4ac2d0
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x427e9d.66
mov al, byte [edi]
cmp al, 0x22
je case.0x427e9d.66
movsx eax, al
push eax
push 0x4ac2d0
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x427f67
movsx eax, byte [edi + 1]
inc edi
push eax
push 0x4ac2d0
call fcn.004945a1
add esp, 8
test eax, eax
je 0x427f50
cmp byte [edi], 0x28
sete byte [esp + 0x27]
jmp 0x428192
mov al, byte [ebx]
mov byte [ebx], 0
cmp byte [esi], 0
mov byte [esp + 0x25], al
mov edi, esi
je 0x427faf
mov dl, byte [esi]
test dl, dl
je 0x427faf
lea ebx, [ebx]
mov ecx, 0x4ac2ec
mov al, 0x27
cmp dl, al
je 0x4283b1
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x427f97
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x427f90
push 0
push 1
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne 0x428184
cmp byte [esi], 0x2e
jne 0x427ff6
movsx eax, byte [0x4b79d3]
push eax
push esi
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x4283d0
mov cl, byte [esp + 0x25]
mov ebx, dword [esp + 0x18]
mov byte [ebx], cl
jmp 0x428192
push 0x2e
push ebp
call fcn.004945a1
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x42809e
mov edx, dword [esp + 0x18]
movzx edi, byte [edx - 1]
test edi, 0xffffff80
jne 0x42802d
push 2
push edi
call fcn.00493e17
add esp, 8
test eax, eax
je 0x42802d
and edi, 0xffffffdf
mov eax, edi
cmp al, 0x45
jne 0x42807d
mov al, byte [esp + 0x25]
cmp al, 0x2b
je 0x42803f
cmp al, 0x2d
jne 0x42807d
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jl 0x428051
cmp al, 0x39
jle 0x428045
push 0
mov edi, ecx
mov bl, byte [edi]
push 1
push 0
push 1
mov eax, esi
mov dword [esp + 0x28], ecx
mov byte [esp + 0x35], bl
mov byte [edi], 0
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x42807d
mov byte [edi], bl
jmp 0x42818e
movsx eax, byte [0x4b79d3]
push eax
push ebp
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x4283ef
sub ebp, esi
mov dword [esp + 0x2c], ebp
jmp 0x4280b6
cmp byte [esp + 0x25], 0x28
sete bl
test bl, bl
je 0x4280b8
cmp byte [esp + 0x27], 0
je 0x4280b8
mov byte [esp + 0x27], 0
xor bl, bl
movsx eax, byte [0x4b79d3]
push eax
push esi
call fcn.004945a1
add esp, 8
test eax, eax
je 0x42811d
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test ecx, ecx
je 0x4280e6
mov edx, dword [esp + 0x1c]
mov eax, esi
sub eax, dword [edx + 4]
add eax, ecx
jmp 0x4280e8
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x154]
push edx
push eax
mov eax, dword [esp + 0x1960]
push esi
push eax
call fcn.0042ac00
test eax, eax
je 0x428e1e
test bl, bl
je 0x428184
lea ecx, [edi + edi*2]
mov byte [esp + ecx*4 + 0x159], 0
jmp 0x428184
mov ebp, dword [esp + 0x14]
cmp ebp, 0x200
jge 0x42840e
mov eax, dword [esp + 0x2c]
lea edi, [ebp + ebp*2]
add edi, edi
add edi, edi
mov dword [esp + edi + 0x150], esi
mov word [esp + edi + 0x15a], ax
mov byte [esp + edi + 0x158], bl
test bl, bl
je 0x428160
mov dword [esp + edi + 0x154], 0
jmp 0x42817f
mov ecx, dword [esp + 0x1954]
push 3
push eax
push esi
call fcn.0042e5f0
mov dword [esp + edi + 0x154], eax
test eax, eax
je 0x428e1e
inc ebp
mov dword [esp + 0x14], ebp
mov dl, byte [esp + 0x25]
mov eax, dword [esp + 0x18]
mov byte [eax], dl
mov ebx, dword [esp + 0x18]
cmp byte [ebx], 0
mov esi, ebx
jne 0x427cd3
mov eax, dword [esp + 0x14]
cmp eax, 1
jne 0x4281e4
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
push 0
push ecx
call fcn.00483370
add esp, 8
test eax, eax
je 0x4281f0
mov al, byte [esp + 0x1958]
cmp al, 0x6a
jb 0x4281cf
cmp al, 0x6c
jbe 0x42828a
cmp al, 0x72
jb 0x4281db
cmp al, 0x74
jbe 0x42828a
mov byte [esi + 1], 0
jmp 0x42828a
test eax, eax
je 0x428324
mov esi, dword [esp + 0x1c]
mov esi, dword [esi + 4]
test esi, esi
je 0x428218
mov dl, byte [esi]
test dl, dl
je 0x428218
mov ecx, 0x4ac2d0
mov al, 0x20
cmp dl, al
je 0x42827f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x428204
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4281fd
cmp byte [esp + 0x158], 0
jne 0x42827f
mov edx, dword [esp + 0x150]
mov al, byte [0x4b79d3]
cmp byte [edx], al
jne 0x42827f
mov al, byte [esp + 0x1958]
cmp al, 0x6a
jb 0x428241
cmp al, 0x6c
jbe 0x42827f
cmp al, 0x72
jb 0x428249
cmp al, 0x74
jbe 0x42827f
mov eax, dword [esp + 0x1c]
mov word [eax], 1
jmp 0x42827f
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebx + 4]
lea edx, [esp + 0x154]
push edx
mov edx, dword [esp + 0x195c]
push eax
push ecx
push edx
call fcn.0042ac00
test eax, eax
je 0x428e1e
cmp dword [esp + 0x14], 0
je 0x428324
mov edi, dword [esp + 0x14]
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
lea esi, [edi + 0xc]
lea eax, [esi - 1]
cmp eax, 0x7fff
ja 0x4282f5
cmp dword [0x4bc38c], 0
jne 0x4282b9
call fcn.0047c7a0
mov dword [0x4bc38c], eax
test eax, eax
je 0x4282f5
mov edx, dword [0x4bc390]
cmp esi, dword [edx + 8]
jbe 0x4282d6
call fcn.0047c7a0
mov edx, dword [0x4bc390]
mov dword [edx + 0xc], eax
test eax, eax
je 0x4282f5
mov eax, dword [edx + 4]
mov ecx, esi
and ecx, 3
mov dword [0x4bc394], eax
je 0x4282ea
sub esi, ecx
add esi, 4
sub dword [edx + 8], esi
lea ecx, [eax + esi]
mov dword [edx + 4], ecx
jmp 0x4282f7
xor eax, eax
mov esi, dword [esp + 0x1c]
mov dword [esi + 8], eax
test eax, eax
je 0x42842d
push edi
lea edx, [esp + 0x154]
push edx
push eax
call fcn.0049b620
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [edi + eax], 0
jmp 0x42832f
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x1960]
jge 0x4278bb
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x1964]
jmp 0x4279c0
mov ecx, dword [esp + 0x1954]
push ebp
push 0x4ac228
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
push ebp
push 0x4ac238
mov ecx, esi
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push esi
push 0x4ac28c
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push edi
push 0x4ac2f4
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push esi
push 0x4ac330
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push ebp
push 0x4ac330
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push esi
push 0x4ac350
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x1954]
push 0x4a7935
push 0x4aa228
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov esi, dword [eax + 4]
mov dword [esi + 0x14], edi
mov dword [eax + 4], edi
mov dword [eax + 0x374], edi
mov eax, dword [esp + 0x20]
cmp edx, ecx
jle 0x42846c
mov ebp, dword [eax + 4]
jmp 0x428471
mov ebp, 0x4a7935
cmp edx, 1
jle 0x428484
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, 0x4a7935
jmp 0x42848d
mov ecx, 0x4a7935
mov dword [esp + 0x10], ecx
cmp edx, 2
jle 0x42849b
mov esi, dword [eax + 0x24]
mov dword [esp + 0x14], esi
jmp 0x42849f
mov dword [esp + 0x14], ecx
cmp edx, 3
jle 0x4284ad
mov edx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
jmp 0x4284b1
mov dword [esp + 0x1c], ecx
movzx eax, bl
dec eax
cmp eax, 0xe1
ja case.0x4284c7.3
movzx eax, byte [eax + 0x42a9ac]
jmp dword [eax*4 + 0x42a8a0]
cmp dword [esp + 0x1960], 2
jge 0x428503
push 0x4a7935
push 0x4ac368
mov ecx, dword [esp + 0x195c]
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 2
jle 0x42863f
mov esi, dword [esp + 0x14]
mov bl, byte [esi]
test bl, bl
je 0x42855e
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x42855e
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac380
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x42855e
mov ecx, dword [esp + 0x1954]
push esi
push 0x4aa47c
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp byte [esp + 0x1958], 5
jne 0x4285b6
mov edi, dword [esp + 0x10]
cmp byte [edi], 0
je 0x4285b6
mov ecx, dword [esp + 0x18]
mov eax, 1
call fcn.0041cd70
test al, al
jne 0x4285b6
push 1
lea esi, [esp + 0x3c]
mov eax, edi
call fcn.0047f230
add esp, 4
test eax, eax
jne 0x4285b6
mov ecx, dword [esp + 0x1954]
push edi
push 0x4aa464
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x1c], 0
mov esi, dword [esp + 0x1954]
cmp byte [esi + 0x48], 0
mov ecx, dword [0x4b7a70]
mov ebp, dword [esp + 0x18]
je 0x4285fc
cmp byte [esp + 0x26], 0
je 0x4285fc
mov edx, dword [ecx + 0x94]
mov dword [edx + 8], ebp
mov byte [esi + 0x48], 0
mov eax, dword [ecx + 0x94]
cmp byte [eax + 0x3c], 0
jne 0x4285fc
mov byte [eax + 0x3c], 0x42
mov al, byte [esp + 0x1958]
cmp al, 0x75
jne 0x42a764
mov eax, dword [esi + 0x40]
mov edx, 1
add dword [esi + 0x44], edx
mov dword [ebp + 0x1c], eax
mov dword [esi + 0x40], ebp
mov eax, dword [ecx + 0x94]
test eax, eax
je 0x42a7fd
cmp dword [eax + 8], 0
jne 0x42a7fd
mov dword [ebp + 0xc], edx
mov byte [esi + 0x48], dl
jmp 0x42a7fd
cmp byte [esp + 0x1958], 7
jne case.0x4284c7.1
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.1
mov edx, dword [esp + 0x20]
cmp byte [edx + 0x11], al
jne case.0x4284c7.1
mov esi, dword [esp + 0x10]
call fcn.0041c2a0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp case.0x4284c7.1
mov ecx, dword [esp + 0x1954]
push esi
push 0x4ac388
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ebp, 1
cmp dword [esp + 0x1960], ebp
jle case.0x4284c7.3
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1960]
add edi, 0x14
mov esi, dword [edi]
cmp byte [esi], 0
je 0x428734
mov ecx, dword [esp + 0x18]
mov eax, ebp
call fcn.0041cd70
test al, al
jne 0x428734
cmp byte [edi - 3], al
jne 0x428734
push 0
push 0
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x428734
mov al, byte [esp + 0x1958]
cmp al, 1
je 0x4286f5
cmp al, 2
jne 0x42870e
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x30
je 0x428734
cmp al, 0x2b
je 0x428734
mov ecx, dword [esp + 0x20]
cmp word [ecx + 0x12], 0x12
ja 0x428734
mov eax, 8
call fcn.0047c730
mov dword [edi + 8], eax
test eax, eax
je 0x42842d
mov esi, dword [edi]
call fcn.004040e0
mov ecx, dword [edi + 8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x42873b
mov dword [edi + 8], 0
inc ebp
add edi, 0x10
cmp ebp, ebx
jl 0x4286b5
jmp case.0x4284c7.3
mov esi, dword [esp + 0x1960]
mov eax, esi
sub eax, 0
je 0x4289a4
mov ebx, 1
sub eax, ebx
mov ecx, edi
je 0x428943
xor eax, eax
call fcn.0041cd70
test al, al
je 0x428780
mov dword [edi + 0xc], ebx
jmp case.0x4284c7.3
push 0x4ac398
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4287a0
mov edx, edi
mov dword [edx + 0xc], 5
jmp case.0x4284c7.3
push 0x4ac220
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4287c0
mov eax, edi
mov dword [eax + 0xc], 6
jmp case.0x4284c7.3
push 0x4ac3a0
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4287e0
mov ecx, edi
mov dword [ecx + 0xc], 9
jmp case.0x4284c7.3
push 0x4ac3a4
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x428800
mov edx, edi
mov dword [edx + 0xc], 0xa
jmp case.0x4284c7.3
push 0
push 0
push 0
push ebp
call fcn.0041cdb0
add esp, 0x10
neg eax
sbb eax, eax
neg eax
add eax, 3
mov ecx, edi
mov dword [ecx + 0xc], eax
cmp eax, 3
jne 0x4288b3
mov eax, ebx
call fcn.0041cd70
test al, al
jne 0x428842
mov esi, dword [esp + 0x10]
call fcn.0041ebd0
test eax, eax
je 0x428d2d
mov eax, dword [esp + 0x14]
mov bl, byte [eax]
test bl, bl
je case.0x4284c7.3
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
jmp 0x428870
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428870
sub eax, edx
cmp eax, 1
ja 0x428890
cmp bl, 0x30
je case.0x4284c7.3
cmp bl, 0x31
je case.0x4284c7.3
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1958]
push 0x4aa47c
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp esi, 2
jle 0x4288d7
mov eax, 2
call fcn.0041cd70
test al, al
jne 0x4288d7
mov esi, dword [esp + 0x14]
call fcn.0041ebd0
test eax, eax
je 0x42853f
mov edx, dword [esp + 0x1c]
mov bl, byte [edx]
test bl, bl
je case.0x4284c7.3
mov eax, 3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x1c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428900
sub eax, edx
cmp eax, 1
ja 0x428920
cmp bl, 0x30
je case.0x4284c7.3
cmp bl, 0x31
je case.0x4284c7.3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1954]
push eax
push 0x4ac3ac
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
xor eax, eax
call fcn.0041cd70
test al, al
jne 0x428778
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 1], al
jne 0x428778
push 0
push 0
push ebx
push 0
mov eax, ebp
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x428982
mov edx, edi
mov dword [edx + 0xc], 2
jmp case.0x4284c7.3
push 0
push 0
push 0
push ebp
call fcn.0041cdb0
add esp, 0x10
neg eax
sbb eax, eax
neg eax
add eax, 3
mov ecx, edi
mov dword [ecx + 0xc], eax
jmp case.0x4284c7.3
mov dword [edi + 0xc], 2
jmp case.0x4284c7.3
mov dword [edi + 0xc], 7
jmp case.0x4284c7.3
mov dword [edi + 0xc], 8
jmp case.0x4284c7.3
cmp dword [esp + 0x1960], 0
mov byte [0x4bb585], 1
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0
lea edx, [esp + 0x30]
push edx
push ebp
xor ecx, ecx
lea edx, [esp + 0x34]
call fcn.004669c0
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x428a2a
mov ecx, dword [esp + 0x1954]
push ebp
push 0x4ac3c4
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov esi, dword [esp + 0x28]
call fcn.0041da40
cmp eax, 0x12
ja case.0x4284c7.3
movzx eax, byte [eax + 0x42aaa4]
jmp dword [eax*4 + 0x42aa90]
mov ecx, dword [esp + 0x1954]
push ebp
push 0x4aa44c
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041de70
test al, al
je 0x428d2d
cmp al, 0xb
jne case.0x4284c7.3
cmp dword [esp + 0x1960], 3
jle case.0x4284c7.3
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1958]
push 0x4ac3d8
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1954]
push edx
push 0x4ac404
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 2
jle case.0x4284c7.3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1954]
push eax
push 0x4ac43c
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x428b62
mov ecx, dword [esp + 0x1954]
push ecx
mov cl, 1
mov edx, ebp
call fcn.0042ee70
mov edx, edi
mov dword [edx + 0xc], eax
test eax, eax
je 0x428e1e
mov al, byte [esp + 0x1958]
cmp al, 0x97
je 0x428c01
cmp al, 0x98
je 0x428c01
cmp al, 0x99
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
mov bl, byte [eax]
test bl, bl
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428bb0
sub eax, edx
cmp eax, 1
ja 0x428bde
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac474
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1958]
push 0x4aa464
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov edx, dword [esp + 0x10]
mov bl, byte [edx]
test bl, bl
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428c30
sub eax, edx
cmp eax, 1
ja 0x428c4d
mov al, bl
call fcn.00411280
cmp al, 0x52
je case.0x4284c7.3
mov eax, dword [esp + 0x10]
push eax
push 0x4aa464
mov ecx, dword [esp + 0x195c]
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 1
jl case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
je 0x428c9f
mov eax, 1
mov dword [0x4bb5ac], eax
mov dword [0x4bb5b0], eax
jmp case.0x4284c7.3
push 5
push 0x4ab720
push ebp
call fcn.0049353e
add esp, 0xc
test eax, eax
jne 0x428d4c
push 0x4ac478
add ebp, 5
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
je 0x428cd6
mov dword [0x4bb5b0], 1
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
push 1
push 1
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x428d2d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428d17
sub eax, edx
cmp eax, 0x1e
jb case.0x4284c7.3
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1954]
push esi
push 0x4aa464
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
push 7
push 0x4ab718
push ebp
call fcn.0049353e
add esp, 0xc
test eax, eax
jne case.0x428a43.0
push 0x4ac478
add ebp, 7
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
je 0x428d83
mov dword [0x4bb5ac], 1
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
call fcn.00411280
cmp al, 0x48
je case.0x4284c7.3
mov edx, dword [esp + 0x10]
mov al, byte [edx]
call fcn.00411280
cmp al, 0x44
jmp 0x428c47
cmp byte [ebp], 0
je case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push ebp
push 0x4ac480
mov esi, 0x107
lea edi, [esp + 0x50]
call fcn.0047f710
add esp, 8
push 3
push 0
mov ecx, edi
push ecx
mov ecx, dword [esp + 0x1960]
call fcn.0042e5f0
mov edx, dword [esp + 0x18]
mov dword [edx + 0xc], eax
test eax, eax
jne case.0x4284c7.3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
mov eax, dword [0x4b7a70]
cmp dword [eax + 0x94], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4ac484
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0
mov esi, ebp
call fcn.00411340
add esp, 4
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e9c0
cmp eax, 4
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0x4ac4c4
mov eax, ebp
call fcn.0047fa90
add esp, 4
test eax, eax
jne case.0x4284c7.3
push eax
push eax
push eax
push 1
mov eax, ebp
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, ebp
call fcn.0041ea30
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, ebp
call fcn.0041ea90
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 4
mov eax, ebp
call fcn.0041eb40
add esp, 4
cmp eax, 4
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.00416410
cmp eax, 0x64
jbe case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, ebp
call fcn.004113b0
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0
mov eax, ebp
call fcn.0041e970
jmp 0x428e84
mov eax, 4
cmp dword [esp + 0x1960], eax
jle case.0x4284c7.3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x44]
push 0x4aa65c
push eax
call fcn.00492c11
add esp, 8
test eax, eax
je case.0x4284c7.3
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x44]
push eax
push 0x4ac4c8
jmp 0x428c57
mov eax, dword [esp + 0x1c]
mov bl, byte [eax]
test bl, bl
je case.0x4284c7.3
mov eax, 3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac4e0
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x1c]
push ecx
push 0x4ac3ac
jmp 0x428c57
mov edx, dword [esp + 0x10]
cmp byte [edx], 0
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
push 0
push 0
push 2
push eax
call fcn.0041cdb0
add esp, 0x10
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x428c52
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041cfe0
cmp eax, 0xffffffff
jmp 0x428e89
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
cmp byte [ebp], 0
je case.0x4284c7.190
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.190
mov esi, ebp
call fcn.0041cf60
test eax, eax
jne case.0x4284c7.190
jmp case.0x428a43.0
cmp byte [ebp], 0
je case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0
push 0
push 2
push ebp
call fcn.0041cdb0
add esp, 0x10
jmp 0x428e87
cmp byte [esp + 0x1958], 0x9e
jne 0x429238
cmp dword [esp + 0x1960], 0
jle 0x429238
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429238
mov esi, ebp
call fcn.0041c2a0
fld qword [0x4b16b0]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4292a7
fcomp qword [0x4b1658]
fnstsw ax
test ah, 0x41
je 0x428e8f
mov edi, dword [esp + 0x10]
cmp byte [edi], 0
je 0x429265
mov ecx, dword [esp + 0x18]
mov eax, 1
call fcn.0041cd70
test al, al
jne 0x429265
push 0
call fcn.0041d030
add esp, 4
test eax, eax
je 0x428597
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je case.0x4284c7.3
mov ecx, dword [esp + 0x18]
mov eax, 2
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x14]
call fcn.0041d250
cmp eax, 0xffffffff
jne case.0x4284c7.3
mov eax, esi
push eax
push 0x4aa47c
jmp 0x428c57
push ebp
fstp st(0)
push 0x4aa44c
jmp 0x428c57
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041c2a0
fld qword [0x4b16b0]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4292a7
fcomp qword [0x4b1658]
fnstsw ax
test ah, 0x41
jmp 0x428e89
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov edx, dword [esp + 0x10]
push 0x4ac4e4
push edx
call fcn.00492c11
add esp, 8
test eax, eax
je case.0x4284c7.3
mov eax, dword [esp + 0x10]
push 0x4a7dfc
push eax
call fcn.00492c11
add esp, 8
test eax, eax
je case.0x4284c7.3
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x428c52
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x429404
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0
je 0x429404
mov edx, dword [esp + 0x1960]
cmp edx, 4
jle 0x429404
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x44]
cmp byte [eax], 0
je 0x429404
cmp edx, 5
jle 0x429404
mov eax, dword [ecx + 0x54]
cmp byte [eax], 0
je 0x429404
cmp edx, 6
jle 0x429404
mov eax, dword [ecx + 0x64]
cmp byte [eax], 0
je 0x429404
cmp byte [esp + 0x1958], 0x95
je case.0x4284c7.3
mov eax, 7
cmp edx, eax
jle case.0x4284c7.3
mov esi, dword [ecx + 0x74]
cmp byte [esi], 0
je case.0x4284c7.3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
call fcn.00416410
test eax, eax
js 0x4293f2
cmp eax, 0xff
jle case.0x4284c7.3
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x74]
push eax
push 0x4ac518
jmp 0x428c57
push 0x4a7935
push 0x4ac4ec
jmp 0x428c57
cmp byte [ebp], 0
je 0x429439
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429439
mov esi, ebp
call fcn.0041eee0
movzx eax, ax
cmp eax, 0xffffffff
je case.0x428a43.0
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041ee70
movzx edx, ax
cmp edx, 0xffffffff
jne case.0x4284c7.3
jmp 0x428c4d
cmp byte [ebp], 0
je case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.00416410
test eax, eax
js 0x428e8f
cmp eax, 0x64
jle case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x428c57
mov esi, dword [esp + 0x14]
cmp byte [esi], 0
je 0x4294e1
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x4294e1
call fcn.00416410
test eax, eax
js 0x42853f
cmp eax, 0x64
jg 0x42853f
mov esi, dword [esp + 0x1c]
mov bl, byte [esi]
test bl, bl
je 0x429511
mov eax, 3
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429511
mov al, bl
call fcn.00411280
cmp al, 0x52
je 0x429511
push esi
push 0x4ac3ac
jmp 0x428c57
mov eax, dword [esp + 0x10]
mov ecx, ebp
call fcn.0041f160
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4ac530
jmp 0x428c57
cmp dword [esp + 0x1960], 4
mov ebx, dword [esp + 0x20]
jle 0x429571
mov esi, dword [ebx + 0x44]
cmp byte [esi], 0
je 0x429571
mov eax, 4
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429571
call fcn.00416410
test eax, eax
js 0x429563
cmp eax, 0x64
jle 0x429571
mov eax, dword [ebx + 0x44]
push eax
push 0x4ac4c8
jmp 0x428c57
cmp dword [esp + 0x1960], 5
jle 0x4295d0
mov esi, dword [ebx + 0x54]
cmp byte [esi], 0
je 0x4295d0
mov eax, 5
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x4295d0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429598
sub eax, edx
cmp eax, 1
ja 0x4295c2
mov al, byte [esi]
call fcn.00411280
movsx eax, al
push eax
push 0x4ac564
call fcn.004945a1
add esp, 8
test eax, eax
jne 0x4295d0
mov eax, dword [ebx + 0x54]
push eax
push 0x4ac568
jmp 0x428c57
cmp dword [esp + 0x1960], 6
jle 0x42960b
mov esi, dword [ebx + 0x64]
cmp byte [esi], 0
je 0x42960b
mov eax, 6
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x42960b
mov al, byte [esi]
call fcn.00411280
cmp al, 0x52
je 0x42960b
mov eax, dword [ebx + 0x64]
push eax
push 0x4ac580
jmp 0x428c57
cmp byte [ebp], 0
je 0x429634
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429634
push 1
xor bl, bl
mov esi, ebp
call fcn.00416440
add esp, 4
test eax, eax
je case.0x428a43.0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
call fcn.0041f160
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x10]
push ecx
push 0x4ac530
jmp 0x428c57
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
je 0x429753
mov ecx, dword [esp + 0x1960]
cmp ecx, 4
jle 0x429753
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x44]
cmp byte [eax], 0
je 0x429753
cmp ecx, 5
jle 0x4296bf
mov esi, dword [ebx + 0x54]
cmp byte [esi], 0
je 0x4296bf
mov eax, 5
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x4296b8
call fcn.00416410
test eax, eax
js 0x4295c2
cmp eax, 0x64
jg 0x4295c2
mov ecx, dword [esp + 0x1960]
cmp ecx, 6
jle 0x4296eb
mov esi, dword [ebx + 0x64]
cmp byte [esi], 0
je 0x4296eb
mov eax, 6
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x4296eb
mov al, byte [esi]
call fcn.00411280
cmp al, 0x52
jne 0x4295fd
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x42970e
push 0
xor bl, bl
mov esi, ebp
call fcn.00416440
add esp, 4
test eax, eax
je case.0x428a43.0
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, esi
call fcn.0041f160
test eax, eax
jne 0x42972c
push esi
push 0x4ac530
jmp 0x428c57
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x44]
mov ecx, dword [esp + 0x1c]
call fcn.0041f160
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x1c]
push ecx
push 0x4ac530
jmp 0x428c57
push 0x4a7935
push 0x4ac598
jmp 0x428c57
mov edx, dword [esp + 0x10]
cmp byte [edx], 0
jne case.0x4284c7.3
jmp 0x4284d8
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0
je case.0x4284c7.3
mov eax, 3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x1c]
push 1
xor bl, bl
call fcn.00416440
add esp, 4
test eax, eax
jne case.0x4284c7.3
push esi
push 0x4ac3ac
jmp 0x4284e2
mov esi, dword [esp + 0x14]
cmp byte [esi], 0
je 0x42982e
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x42982e
call fcn.00416410
push 0
push 0
mov edi, eax
push 1
push 0
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
setne al
cmp byte [esp + 0x1958], 0xad
jne 0x429825
test al, al
jne 0x42980d
mov al, byte [esi]
call fcn.00411280
cmp al, 0x52
jne 0x42981a
jmp case.0x4284c7.3
cmp edi, 2
jle case.0x4284c7.3
mov esi, dword [esp + 0x14]
push esi
push 0x4aa47c
jmp 0x4284e2
test al, al
je 0x42981a
cmp edi, 1
jg 0x42981a
cmp byte [esp + 0x1958], 0xa9
jne case.0x4284c7.3
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
mov ecx, dword [esp + 0x18]
xor eax, eax
call fcn.0041cd70
test al, al
je case.0x4284c7.3
push ebp
push 0x4ac5b8
jmp 0x4284e2
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.00416410
push 0
push 0
mov edi, eax
push 1
push 0
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x4298b3
cmp edi, 1
jle case.0x4284c7.3
push esi
push 0x4aa464
jmp 0x4284e2
cmp byte [ebp], 0
je 0x4298f9
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x4298f9
mov esi, ebp
mov al, byte [esi]
call fcn.00411280
movsx eax, al
push eax
push 0x4ac5d4
call fcn.004945a1
add esp, 8
test eax, eax
je case.0x42a048.0
inc esi
cmp byte [esi], 0
jne 0x4298d3
mov eax, 2
cmp dword [esp + 0x1960], eax
jle 0x429923
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429923
mov esi, dword [esp + 0x14]
call fcn.0041ebd0
test eax, eax
je 0x42981a
mov edx, dword [esp + 0x1c]
mov bl, byte [edx]
test bl, bl
je case.0x4284c7.3
mov eax, 3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x1c]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429950
sub eax, edx
cmp eax, 1
ja 0x429970
cmp bl, 0x30
je case.0x4284c7.3
cmp bl, 0x31
je case.0x4284c7.3
mov eax, dword [esp + 0x1c]
push eax
push 0x4ac3ac
jmp 0x4284e2
mov ecx, dword [esp + 0x14]
mov bl, byte [ecx]
test bl, bl
je case.0x4284c7.3
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4299a8
sub eax, edx
cmp eax, 1
ja 0x4299d6
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac5e0
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x4284c7.3
mov edx, dword [esp + 0x14]
push edx
push 0x4aa47c
jmp 0x4284e2
cmp byte [ebp], 0
je 0x429a10
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429a10
push 1
lea esi, [esp + 0x3c]
mov eax, ebp
call fcn.0047f230
add esp, 4
test eax, eax
je case.0x42a048.0
mov esi, dword [esp + 0x14]
mov bl, byte [esi]
test bl, bl
je 0x429a62
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429a62
mov eax, esi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429a30
sub eax, edx
cmp eax, 1
ja 0x42981a
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac5e0
call fcn.004945a1
add esp, 8
test eax, eax
je 0x42981a
mov edi, dword [esp + 0x1960]
cmp edi, 3
jle 0x429a91
mov ecx, dword [esp + 0x18]
mov eax, 3
call fcn.0041cd70
test al, al
jne 0x429a91
mov esi, dword [esp + 0x1c]
call fcn.0041ebd0
test eax, eax
je 0x4297ad
cmp edi, 4
jle case.0x4284c7.3
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x44]
cmp byte [esi], 0
je case.0x4284c7.3
mov ecx, dword [esp + 0x18]
mov eax, 4
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429ac5
sub eax, edx
cmp eax, 1
ja 0x429ae5
cmp byte [esi], 0x30
je case.0x4284c7.3
cmp byte [esi], 0x31
je case.0x4284c7.3
push esi
push 0x4ac4c8
jmp 0x4284e2
mov ecx, dword [esp + 0x14]
mov bl, byte [ecx]
test bl, bl
je case.0x4284c7.3
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429b20
sub eax, edx
cmp eax, 1
ja 0x4299d6
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac5e4
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x4284c7.3
mov edx, dword [esp + 0x14]
push edx
push 0x4aa47c
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041d400
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x4284e2
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041d540
mov edi, eax
test edi, edi
je 0x4298b3
mov ebx, dword [esp + 0x18]
cmp edi, 4
jne 0x429c32
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 4]
cmp byte [ecx], 0
jne 0x429c32
mov eax, dword [eax + 8]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x429bf3
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x17]
cmp cl, 2
jne 0x429c15
cmp dword [esp + 0x1960], 3
jge case.0x4284c7.3
push 0x4a7935
push 0x4ac5e8
jmp 0x4284e2
cmp dword [esp + 0x1960], 2
jle case.0x4284c7.3
mov eax, dword [esp + 0x14]
push eax
push 0x4aa130
jmp 0x4284e2
mov eax, 2
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.0x429c59.3
lea eax, [edi - 2]
cmp eax, 0x19
ja case.0x429c59.3
movzx ecx, byte [eax + 0x42aac8]
jmp dword [ecx*4 + 0x42aab8]
mov esi, dword [esp + 0x14]
push 0
push 0
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.0x429c59.3
push esi
push 0x4ac618
jmp 0x4284e2
mov esi, dword [esp + 0x14]
push 0
push 1
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.0x429c59.3
push esi
push 0x4ac648
jmp 0x4284e2
mov esi, dword [esp + 0x14]
push 0
push 1
push 0
push 0
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.0x429c59.3
push esi
push 0x4ac674
jmp 0x4284e2
lea eax, [edi - 1]
cmp eax, 0x1a
ja case.default.0x429ce2
movzx edx, byte [eax + 0x42aaf8]
jmp dword [edx*4 + 0x42aae4]
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0
je case.default.0x429ce2
push eax
push 0x4ac3d8
jmp 0x4284e2
mov eax, 3
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.default.0x429ce2
mov esi, dword [esp + 0x1c]
push 0
push 0
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.default.0x429ce2
push esi
push 0x4ac6ac
jmp 0x4284e2
mov eax, 3
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.default.0x429ce2
mov esi, dword [esp + 0x1c]
push 0
push 0
push 0
push 0
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.default.0x429ce2
push esi
push 0x4ac6dc
jmp 0x4284e2
mov esi, dword [esp + 0x1c]
cmp byte [esi], 0
je case.default.0x429ce2
mov eax, 3
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.default.0x429ce2
push 0
push 0
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.default.0x429ce2
push esi
push 0x4ac714
jmp 0x4284e2
mov eax, 3
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.default.0x429ce2
mov esi, dword [esp + 0x1c]
push 0
push 1
push 0
push 1
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.default.0x429ce2
push esi
push 0x4ac74c
jmp 0x4284e2
mov eax, edi
sub eax, 2
je 0x429e31
sub eax, 4
jne case.0x4284c7.3
mov ecx, dword [esp + 0x18]
mov eax, 3
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x1c]
call fcn.0041c2a0
fldz
fucompp
fnstsw ax
test ah, 0x44
jp case.0x4284c7.3
mov eax, esi
push eax
push 0x4ac388
jmp 0x4284e2
mov eax, 2
mov ecx, ebx
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x14]
call fcn.00416410
push 0
push 0
mov edi, eax
push 0
push 0
mov eax, esi
call fcn.0047f5a0
add esp, 0x10
test eax, eax
je 0x42981a
cmp edi, 0xff
jle case.0x4284c7.3
push esi
push 0x4aa47c
jmp 0x4284e2
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041d7e0
mov esi, eax
cmp esi, 0x13
je 0x429ebd
cmp esi, 0x15
jle 0x429ef1
cmp esi, 0x18
jg 0x429ef4
cmp dword [esp + 0x1960], 0
jle 0x429ef1
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne 0x429ef1
push 0x4ac778
push ebp
call fcn.00492c11
add esp, 8
test eax, eax
je 0x429ef1
push ebp
push 0x4ac780
jmp 0x4284e2
cmp esi, 0x18
ja case.0x4284c7.3
movzx ecx, byte [esi + 0x42ab24]
jmp dword [ecx*4 + 0x42ab14]
mov edx, dword [esp + 0x10]
push edx
push 0x4aa464
jmp 0x4284e2
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x429f5a
mov ecx, dword [esp + 0x1c]
cmp byte [ecx], 0
jne 0x429f5a
mov ecx, dword [esp + 0x1960]
cmp ecx, 4
jle 0x429f41
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x44]
cmp byte [eax], 0
jne 0x429f5a
cmp ecx, 5
jle case.0x4284c7.3
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x54]
cmp byte [eax], 0
je case.0x4284c7.3
mov ecx, dword [esp + 0x14]
push ecx
push 0x4ac43c
jmp 0x4284e2
cmp esi, 4
je 0x429fab
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
jne 0x429fa0
mov ecx, dword [esp + 0x1960]
cmp ecx, 4
jle 0x429f8f
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x44]
cmp byte [eax], 0
jne 0x429fa0
cmp ecx, 5
jle 0x429fab
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x54]
cmp byte [eax], 0
je 0x429fab
push edx
push 0x4ac7a4
jmp 0x4284e2
lea eax, [esi - 2]
cmp eax, 0x13
ja case.0x429fba.3
movzx edx, byte [eax + 0x42ab48]
jmp dword [edx*4 + 0x42ab40]
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4ac5e8
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e0d0
test eax, eax
jne case.0x4284c7.3
push ebp
push 0x4aa44c
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e1c0
cmp eax, 0x11
ja case.0x42a048.1
movzx ecx, byte [eax + 0x42ab68]
jmp dword [ecx*4 + 0x42ab5c]
cmp eax, 0xb
je case.0x4284c7.3
cmp eax, 0xc
je case.0x4284c7.3
mov edx, dword [esp + 0x10]
cmp byte [edx], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4aa494
jmp 0x4284e2
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
je case.0x4284c7.3
mov ecx, eax
push ecx
push 0x4ac7dc
jmp 0x4284e2
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041e370
cmp eax, 0xb
ja case.0x42a0d2.1
movzx edx, byte [eax + 0x42ab8c]
jmp dword [edx*4 + 0x42ab7c]
mov eax, dword [esp + 0x10]
push eax
push 0x4aa464
jmp 0x4284e2
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je 0x4284d8
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
push 0
lea edx, [esp + 0x30]
push edx
push ebp
xor ecx, ecx
lea edx, [esp + 0x34]
call fcn.004669c0
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x42a13c
push ebp
push 0x4ac3c4
jmp 0x4284e2
mov edi, dword [esp + 0x28]
call fcn.0041dc30
cmp eax, 0xc
ja case.0x42a0d2.1
movzx eax, byte [eax + 0x42aba8]
jmp dword [eax*4 + 0x42ab98]
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
jmp 0x429fc8
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov edi, dword [esp + 0x10]
push 0
lea ecx, [esp + 0x30]
push ecx
push edi
xor ecx, ecx
lea edx, [esp + 0x34]
call fcn.004669c0
add esp, 0xc
cmp dword [esp + 0x2c], 0
jne 0x42a1b6
push edi
push 0x4ac3c4
jmp 0x4284e2
mov esi, dword [esp + 0x28]
call fcn.0041ddb0
mov ecx, eax
sub ecx, 0
je 0x42a205
dec ecx
je 0x42a1dd
mov ecx, dword [esp + 0x1c]
cmp byte [ecx], 0
je 0x42a1dd
push ecx
push 0x4ac3d8
jmp 0x4284e2
cmp eax, 3
je case.0x42a0d2.1
cmp eax, 4
jne case.0x4284c7.3
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je case.0x4284c7.3
mov eax, edx
push eax
push 0x4aa130
jmp 0x4284e2
push edi
push 0x4aa464
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e4f0
test eax, eax
je case.0x42a048.0
cmp eax, 1
je case.0x4284c7.3
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
jmp 0x42a068
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041e560
test eax, eax
je 0x4298b3
cmp eax, 1
je 0x42a28f
cmp eax, 8
je 0x42a28f
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x429c06
cmp eax, 4
je case.0x4284c7.3
cmp dword [esp + 0x1960], 1
jl 0x42a2b0
mov eax, edi
mov ecx, dword [eax + 8]
cmp byte [ecx], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4ac808
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e130
cmp eax, 3
je 0x42a2fc
cmp eax, 1
je 0x42a2fc
mov edx, dword [esp + 0x10]
cmp byte [edx], 0
je 0x42a06e
cmp eax, 5
ja case.0x4284c7.3
jmp dword [eax*4 + 0x42abb8]
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
je case.0x4284c7.3
mov ecx, eax
push ecx
push 0x4aa130
jmp 0x4284e2
mov edx, dword [esp + 0x14]
mov bl, byte [edx]
test bl, bl
je 0x42a364
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov al, bl
call fcn.00411280
movsx eax, al
push eax
push 0x4ac838
call fcn.004945a1
add esp, 8
test eax, eax
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
push eax
push 0x4aa47c
jmp 0x4284e2
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
je case.0x4284c7.3
mov eax, 2
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
push 0
push 1
push 1
push 0
call fcn.0047f5a0
add esp, 0x10
test eax, eax
jne case.0x4284c7.3
mov edx, dword [esp + 0x14]
push edx
push 0x4ac840
jmp 0x4284e2
cmp byte [ebp], 0
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne case.0x4284c7.3
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0
jne case.0x4284c7.3
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4ac884
jmp 0x4284e2
cmp byte [ebp], 0
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jne case.0x4284c7.3
mov ecx, dword [esp + 0x1c]
cmp byte [ecx], 0
jne case.0x4284c7.3
cmp dword [esp + 0x1960], 4
jle 0x42a3f0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x44]
cmp byte [eax], 0
jmp 0x42a3ea
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
jne case.0x4284c7.3
push 0x4a7935
push 0x4ac8b4
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041e680
cmp eax, 0xa
ja case.0x4284c7.3
movzx ecx, byte [eax + 0x42abe8]
jmp dword [ecx*4 + 0x42abd0]
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.00416410
test eax, eax
js 0x42a4cc
cmp eax, 0xff
jle case.0x4284c7.3
mov edx, dword [esp + 0x10]
push edx
push 0x4aa464
jmp 0x4284e2
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
jmp 0x42a068
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
call fcn.004113b0
test eax, eax
jne case.0x4284c7.3
mov ecx, dword [esp + 0x10]
push ecx
push 0x4aa464
jmp 0x4284e2
mov edx, dword [esp + 0x10]
cmp byte [edx], 0
je case.0x4284c7.3
push 0x4a7935
push 0x4ac7dc
jmp 0x4284e2
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
call fcn.0041e7e0
test eax, eax
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
push eax
push 0x4aa464
jmp 0x4284e2
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041d490
jmp 0x42a512
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, ebp
call fcn.0041ed00
jmp 0x429b87
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov esi, dword [esp + 0x10]
call fcn.0041ef70
test eax, eax
jne case.0x4284c7.3
mov edx, esi
push edx
push 0x4aa464
jmp 0x4284e2
cmp dword [esp + 0x1960], 1
jle case.0x4284c7.3
mov eax, 1
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42a630
sub eax, edx
cmp eax, 1
jbe case.0x4284c7.3
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
mov eax, dword [esp + 0x14]
push 0
push 0
call fcn.0041b2a0
add esp, 0xc
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
push 0
xor ebx, ebx
call fcn.0045b1a0
add esp, 4
test eax, eax
jne case.0x4284c7.3
mov eax, dword [esp + 0x10]
push eax
push 0x4aa464
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, ebp
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42a6b0
sub eax, edx
cmp eax, 1
jbe case.0x4284c7.3
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0
mov eax, ebp
call fcn.0041b2a0
add esp, 0xc
test al, al
jne case.0x4284c7.3
push 0
xor ebx, ebx
mov eax, ebp
call fcn.0045b1a0
add esp, 4
jmp 0x429b87
mov eax, 2
cmp dword [esp + 0x1960], eax
jle case.0x4284c7.3
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, dword [esp + 0x14]
call fcn.0041f0a0
cmp eax, 0xffffffff
jne case.0x4284c7.3
mov ecx, dword [esp + 0x14]
push ecx
push 0x4aa47c
jmp 0x4284e2
cmp dword [esp + 0x1960], 0
jle case.0x4284c7.3
xor eax, eax
mov ecx, edi
call fcn.0041cd70
test al, al
jne case.0x4284c7.3
mov eax, ebp
call fcn.0041f0a0
cmp eax, 0xffffffff
jmp 0x429b89
cmp al, 0x76
jne 0x42a7fd
dec dword [esi + 0x44]
mov edi, dword [ecx + 0x94]
mov eax, dword [esi + 0x44]
xor ecx, ecx
cmp edi, ecx
je 0x42a7f0
cmp eax, ecx
jne 0x42a7f0
mov eax, dword [edi + 0x34]
cmp eax, ecx
je 0x42a7d8
test byte [edi + 0x3c], 4
je 0x42a7d8
add eax, eax
add eax, eax
call fcn.0047c730
mov ebx, eax
test ebx, ebx
jne 0x42a7bc
push 0x4a7935
push 0x4aa228
mov ecx, esi
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x24]
add ecx, ecx
add ecx, ecx
push ecx
push edx
push ebx
call fcn.0049b620
add esp, 0xc
mov dword [edi + 0x24], ebx
xor ecx, ecx
jmp 0x42a7de
mov dword [edi + 0x34], ecx
mov dword [edi + 0x24], ecx
mov eax, dword [0x4b7a70]
mov dword [ebp + 0xc], 1
mov dword [eax + 0x94], ecx
mov eax, dword [esi + 0x40]
cmp eax, ecx
je 0x42a7fd
mov ecx, dword [eax + 0x1c]
mov dword [esi + 0x40], ecx
cmp byte [esp + 0x26], 0
je 0x42a832
mov eax, dword [esi + 0x14]
test eax, eax
je 0x42a832
jmp 0x42a810
cmp dword [eax + 8], 0
jne 0x42a832
mov cl, byte [ebp]
cmp cl, 0x21
je 0x42a844
cmp cl, 0x6c
je 0x42a844
cmp cl, 0x70
je 0x42a844
mov dword [eax + 8], ebp
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x42a810
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14
push 0x4a7935
push 0x4ac8cc
mov ecx, esi
call fcn.0043b780
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x14