Function at 0x471490
Capabilities:
Get keyboard layout

Disassembly:
push 0xffffffffffffffff
push 0x4dcdc9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebx
push ebp
mov ebp, dword [esp + 0x100]
push esi
mov si, word [0x516510]
xor edx, edx
push edi
lea ebx, [esp + 0x14]
mov eax, ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x90020
mov word [esp + 0x18], si
mov word [esp + 0x1a], dx
call fcn.00409d30
test eax, eax
jne 0x471509
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4714f0
sub eax, edx
sar eax, 1
xor edi, edi
lea eax, [ebp + eax*2]
xor ebx, ebx
jmp 0x471561
mov edx, eax
jmp 0x471510
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x47151d
cmp ecx, 9
jne 0x471522
add edx, 2
jmp 0x471510
movzx ecx, word [edx]
test cx, cx
jne 0x471530
xor edi, edi
xor ebx, ebx
jmp 0x471561
cmp cx, si
je 0x47153b
mov edi, edx
xor ebx, ebx
jmp 0x471561
lea ecx, [edx + 2]
mov edi, edi
movzx edx, word [ecx]
cmp edx, 0x20
je 0x47154d
cmp edx, 9
jne 0x471552
add ecx, 2
jmp 0x471540
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x2c], ecx
cmp word [ecx], bx
jne 0x471565
xor edi, edi
mov dword [esp + 0x2c], edi
sub eax, ebp
sar eax, 1
mov esi, eax
push 0xffffffffffffffff
push esi
push 0x50aba0
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
je 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50abc4
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
sete al
test al, al
jne 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50abf0
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
je 0x472eaf
push 0xffffffffffffffff
push esi
push 0x50ac18
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
sete al
test al, al
jne 0x472eaf
push 0xffffffffffffffff
push esi
push 0x50ae6c
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471667
mov ebx, 0x50ae8c
mov eax, edi
call fcn.00409d30
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x472e94
mov esi, dword [esp + 0x2c]
mov word [ebx], ax
or eax, 0xffffffff
mov edi, esi
call fcn.0042f7d0
call fcn.0041abe0
lea eax, [ebx + 2]
call fcn.00409d80
push eax
push esi
call fcn.00482c10
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
jmp 0x472e94
push 0xffffffffffffffff
push esi
push 0x50ae94
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4717d2
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov ebx, edi
lea eax, [esp + 0x20]
call fcn.00414350
push 1
xor ebp, ebp
push ebp
lea eax, [esp + 0x34]
mov dword [esp + 0x108], 2
push eax
lea esi, [esp + 0x2c]
mov dword [esp + 0x38], 0x2c
call fcn.004148c0
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], ebp
cmp esi, ebp
je 0x4717c2
mov ebx, 0x4ec6cc
mov eax, esi
call fcn.00409d30
mov ebx, eax
xor eax, eax
cmp ebx, eax
je 0x47174b
xor ecx, ecx
or eax, 0xffffffff
mov edi, esi
mov word [ebx], cx
call fcn.0042f7d0
call fcn.0041abe0
cmp word [esi], 0
je 0x471745
test ebp, ebp
jne 0x47171e
mov dword [esp + 0x2c], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4716e2
cmp ebp, 1
jne 0x47172d
mov dword [esp + 0x10], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4716e2
cmp ebp, 2
jne 0x47173c
mov dword [esp + 0x30], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4716e2
cmp ebp, 3
jne 0x471745
mov dword [esp + 0x14], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4716e2
mov edi, dword [esp + 0x2c]
cmp edi, eax
je 0x471af7
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x471af7
mov esi, dword [esp + 0x30]
cmp esi, eax
je 0x471af7
mov edx, dword [esp + 0x14]
cmp edx, eax
je 0x471af7
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edx
lea edx, [esp + 0x18]
push esi
push edx
mov byte [esp + 0x10c], 3
call fcn.00485d60
add esp, 0xc
test al, al
je 0x471aee
mov eax, dword [esp + 0x18]
push eax
push edi
call fcn.00482c10
test eax, eax
je 0x471aee
lea ecx, [esp + 0x14]
call fcn.00413fb0
lea ecx, [esp + 0x20]
call fcn.00413fb0
xor eax, eax
jmp 0x472e94
push 0xffffffffffffffff
push esi
push str.se43_r__
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x47191e
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov ebx, edi
lea eax, [esp + 0x20]
call fcn.00414350
push 1
xor ebp, ebp
push ebp
lea eax, [esp + 0x1c]
mov dword [esp + 0x108], 4
push eax
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], 0x2c
call fcn.004148c0
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x10], ebp
cmp esi, ebp
je 0x4717c2
lea ecx, [ecx]
mov ebx, 0x4ec6cc
mov eax, esi
call fcn.00409d30
mov ebx, eax
xor eax, eax
cmp ebx, eax
je 0x4718b9
xor ecx, ecx
or eax, 0xffffffff
mov edi, esi
mov word [ebx], cx
call fcn.0042f7d0
call fcn.0041abe0
cmp word [esi], 0
je 0x4718b3
test ebp, ebp
jne 0x47188c
mov dword [esp + 0x14], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471850
cmp ebp, 1
jne 0x47189b
mov dword [esp + 0x30], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471850
cmp ebp, 2
jne 0x4718aa
mov dword [esp + 0x2c], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471850
cmp ebp, 3
jne 0x4718b3
mov dword [esp + 0x10], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471850
mov edi, dword [esp + 0x14]
cmp edi, eax
je 0x471af7
mov ecx, dword [esp + 0x30]
cmp ecx, eax
je 0x471af7
mov esi, dword [esp + 0x2c]
cmp esi, eax
je 0x471af7
mov edx, dword [esp + 0x10]
cmp edx, eax
je 0x471af7
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edx
mov eax, esi
lea edx, [esp + 0x18]
mov byte [esp + 0x104], 5
call fcn.00485fc0
add esp, 4
test al, al
je 0x471aee
mov edx, dword [esp + 0x18]
push edx
jmp 0x4717ab
push 0xffffffffffffffff
push esi
push 0x50aef4
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471943
mov eax, 1
jmp 0x4719b4
push 0xffffffffffffffff
push esi
push 0x50af20
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471968
mov eax, 2
jmp 0x4719b4
push 0xffffffffffffffff
push esi
push 0x50af68
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x47198d
mov eax, 3
jmp 0x4719b4
push 0xffffffffffffffff
push esi
push str.se43
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471d6d
mov eax, 4
cmp byte [0x51c008], 0
jne 0x472e8f
cmp eax, 1
jne 0x4719e7
cmp edi, ebx
jne 0x4719eb
push ebp
push 0x50affc
call fcn.004a4b10
mov ecx, dword [esp + 0x18]
add esp, 4
push eax
call fcn.00477180
jmp 0x472e94
cmp edi, ebx
je 0x4719fb
movzx ecx, word [edi]
cmp ecx, 0x20
je 0x4719f8
cmp ecx, 9
jne 0x4719fb
add edi, 2
cmp eax, 1
jne 0x471a29
cmp edi, ebx
je 0x471a09
cmp word [edi], bx
je 0x4719ca
mov ebx, edi
mov eax, 0x51e5e8
call fcn.00414350
test eax, eax
je 0x4717cb
mov byte [0x51c008], 1
jmp 0x472e8f
cmp eax, 2
jne 0x471b05
cmp edi, ebx
je 0x471a55
mov eax, edi
lea edx, [eax + 2]
jmp 0x471a40
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x471a40
sub eax, edx
sar eax, 1
je 0x471a55
mov ebp, edi
jmp 0x471a64
push 0x50b02c
call fcn.004a4b10
add esp, 4
mov ebp, eax
mov ebx, dword [0x51cbc0]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
call fcn.00414350
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
push ecx
call fcn.004ccb85
add esp, 4
mov edx, eax
call fcn.00485c00
add esp, 4
lea eax, [esp + 0x20]
call fcn.00414e80
test eax, eax
je 0x4717b9
lea edi, [esp + 0x20]
mov esi, 0x51e5e8
call fcn.00414130
test eax, eax
je 0x4717b9
push 1
push 1
push ebp
mov esi, 0x51e5e8
call fcn.004148c0
test eax, eax
je 0x4717b9
mov byte [0x51c008], 1
lea ecx, [esp + 0x14]
call fcn.00413fb0
lea ecx, [esp + 0x20]
call fcn.00413fb0
jmp 0x472e8f
cmp eax, 3
jne 0x471c69
push 0x3a
push edi
call fcn.004ca9cb
add esp, 8
cmp eax, ebx
je 0x471b22
add eax, 2
jmp 0x471b24
mov eax, edi
cmp word [eax], 0x5c
jne 0x471b2d
add eax, 2
xor ecx, ecx
mov ebx, eax
lea eax, [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ecx
call fcn.00414350
mov dword [esp + 0x100], 6
mov esi, dword [esp + 0x24]
xor ebp, ebp
cmp esi, ebp
je 0x471ba2
push 0x2c
push esi
call fcn.004ca9cb
add esp, 8
cmp eax, ebp
je 0x471b6f
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x20]
call fcn.00414e80
cmp word [esi + eax*2 - 2], 0x5c
jne 0x471b90
lea eax, [esp + 0x20]
call fcn.00414e80
xor ecx, ecx
mov word [esi + eax*2 - 2], cx
push 1
push 1
push 0x4ec878
lea esi, [esp + 0x2c]
call fcn.004148c0
mov edx, dword [0x51cbc0]
push 1
push 1
push edx
lea esi, [esp + 0x2c]
call fcn.004148c0
test eax, eax
je 0x4717c2
push 0x2c
push edi
call fcn.004ca9cb
add esp, 8
cmp eax, ebp
je 0x471c01
movzx ecx, word [eax + 2]
cmp ecx, 0x20
je 0x471be0
cmp ecx, 9
je 0x471be0
add eax, 2
jmp 0x471be3
add eax, 4
cmp eax, ebp
je 0x471c01
mov ecx, eax
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x471bf0
sub ecx, esi
sar ecx, 1
jne 0x471c0e
push 0x50b044
call fcn.004a4b10
add esp, 4
mov ecx, dword [esp + 0x24]
mov ebx, eax
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
call fcn.004ccb85
add esp, 4
mov edx, eax
call fcn.00485c00
add esp, 4
lea eax, [esp + 0x14]
call fcn.00414e80
test eax, eax
je 0x4717b9
lea edi, [esp + 0x14]
mov esi, 0x51e5e8
call fcn.00414130
test eax, eax
je 0x4717b9
push 1
push 1
push ebx
jmp 0x471ad5
cmp eax, 4
jne 0x4717cb
cmp edi, ebx
je 0x471c95
mov eax, edi
lea edx, [eax + 2]
jmp 0x471c80
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x471c80
sub eax, edx
sar eax, 1
je 0x471c95
mov ebp, edi
jmp 0x471ca4
push 0x50b05c
call fcn.004a4b10
add esp, 4
mov ebp, eax
mov ebx, dword [0x51cbc0]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
call fcn.00414350
push 1
push 0
push 0x4ec878
lea esi, [esp + 0x2c]
call fcn.004148c0
mov edx, dword [0x51cbc4]
push 1
push 0
push edx
call fcn.004148c0
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.004ccb85
add esp, 4
mov edx, eax
call fcn.00485c00
add esp, 4
lea eax, [esp + 0x14]
call fcn.00414e80
test eax, eax
je 0x471d54
lea edi, [esp + 0x14]
mov esi, 0x51e5e8
call fcn.00414130
test eax, eax
je 0x471d54
push 1
push 1
push ebp
call fcn.004148c0
test eax, eax
je 0x471d54
lea ecx, [esp + 0x20]
mov byte [0x51c008], 1
call fcn.00413fb0
mov ecx, edi
call fcn.00413fb0
jmp 0x472e8f
lea ecx, [esp + 0x20]
call fcn.00413fb0
lea ecx, [esp + 0x14]
call fcn.00413fb0
xor eax, eax
jmp 0x472e94
push 0xffffffffffffffff
push esi
push 0x50b078
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471db1
mov eax, dword [0x51e590]
cmp eax, 0x64
jae 0x4717cb
mov edx, dword [0x51e594]
mov dword [eax*4 + 0x51e400], edx
inc dword [0x51e590]
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b0b8
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471df5
mov eax, dword [0x51e3fc]
cmp eax, 0x64
jae 0x4717cb
mov ecx, dword [0x51e594]
mov dword [eax*4 + 0x51e26c], ecx
inc dword [0x51e3fc]
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b0f0
xor ebx, ebx
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
je 0x472e67
push 0x50b130
call fcn.004a4b10
push 0xffffffffffffffff
push esi
mov ecx, ebp
mov ebx, eax
call fcn.004ac110
add esp, 0xc
test eax, eax
je 0x472e67
push 0xffffffffffffffff
push esi
push 0x50b178
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471e67
mov dword [0x51b038], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b198
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471e91
mov byte [0x51b025], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b1c0
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471ebb
mov byte [0x51b024], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.se8__9__f_8____
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471f68
mov dword [0x51b020], 1
test edi, edi
je 0x472e8f
push 0x50b218
call fcn.004a4b10
push eax
push edi
call fcn.004c9bad
add esp, 0xc
test eax, eax
jne 0x471f16
mov dword [0x51b020], 2
jmp 0x472e8f
push 0x50b234
call fcn.004a4b10
push eax
push edi
call fcn.004c9bad
add esp, 0xc
test eax, eax
jne 0x471f3d
mov dword [0x51b020], 3
jmp 0x472e8f
push 0x4eb868
call fcn.004a4b10
push eax
push edi
call fcn.004c9bad
add esp, 0xc
test eax, eax
jne 0x472e8f
mov dword [0x51b020], 4
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b254
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471f92
or byte [0x51b8e3], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b288
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x471fbc
or byte [0x51b8e3], 2
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b2bc
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472005
test edi, edi
je 0x471ff9
push eax
mov esi, edi
call fcn.00409e20
add esp, 4
mov byte [0x51b6cf], 0
cmp eax, 2
je 0x472e8f
mov byte [0x51b6cf], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x4e7d8c
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4720cf
test edi, edi
jne 0x47203a
mov dword [0x51b048], 0
jmp 0x472e8f
mov edi, dword [esp + 0x2c]
call fcn.0040a4b0
mov dword [0x51b048], eax
test eax, eax
jne 0x472e8f
mov eax, dword [0x5165ec]
mov ebx, dword [eax + 0xb4]
mov esi, dword [esp + 0x10]
push 0
push 0
push 0
push 0x4f5ac4
push 0
push 0xe1
mov dword [eax + 0xb4], 0
push edi
mov ecx, esi
mov byte [esi + 0x45], 1
call fcn.00473760
test eax, eax
je 0x4717cb
mov edx, dword [0x5165ec]
mov byte [esi + 0x45], 0
mov dword [edx + 0xb4], ebx
mov esi, dword [esi + 4]
call fcn.0040a430
mov dword [0x51b048], eax
test eax, eax
je 0x4717cb
mov byte [eax], 5
mov dword [eax + 0xc], esi
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x4f5ac4
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b2e0
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472106
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0041ac40
mov dword [0x51650c], eax
jmp 0x472e8f
push 6
push 0x50b308
call fcn.004a4b10
add esp, 4
push eax
push ebp
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x47241f
push 3
push 0x50b328
call fcn.004a4b10
add esp, 4
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004ca3fb
add esp, 0xc
test eax, eax
sete bl
movzx ecx, bl
neg ecx
sbb ecx, ecx
and ecx, 3
push 6
push 0x4ee7e0
lea esi, [ebp + ecx*2 + 0xc]
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x472180
test bl, bl
setne dl
inc dl
mov byte [esp + 0x30], dl
jmp 0x4721ac
push 5
push 0x4ecb64
call fcn.004a4b10
add esp, 4
push eax
push esi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x472415
test bl, bl
setne al
add al, 3
mov byte [esp + 0x30], al
test edi, edi
je 0x47202b
mov dx, word [0x516510]
xor esi, esi
mov ecx, edi
nop
movzx eax, word [ecx]
test ax, ax
je 0x4721f3
jmp 0x4721d0
cmp ax, word [0x516518]
je 0x472246
cmp ax, dx
je 0x472246
cmp ax, word [0x516514]
je 0x472246
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4721d0
test esi, esi
je 0x47231c
lea eax, [esi + 2]
call fcn.00409d80
mov ebx, eax
mov eax, esi
xor ecx, ecx
sub eax, edi
mov word [esi], cx
sar eax, 1
mov esi, edi
mov dword [esp + 0x14], ebx
call fcn.0041abe0
movzx ebp, word [0x516518]
mov ecx, ebx
movzx eax, word [ecx]
test ax, ax
je 0x472324
cmp ax, bp
je 0x472286
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x472230
jmp 0x472324
movzx eax, word [ecx]
test ax, ax
je 0x4721f3
cmp ax, word [0x516514]
je 0x47227b
cmp ax, dx
jne 0x47226a
test esi, esi
jne 0x47227b
mov esi, ecx
add ecx, 2
jmp 0x4721c0
add ecx, 2
cmp word [ecx], 0
je 0x4721f3
add ecx, 2
jmp 0x4721c0
push ebp
push 0x50b340
jmp 0x4719d0
cmp word [ecx], 0
je 0x472324
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4722a6.99
movzx edx, byte [eax + 0x4733d0]
jmp dword [edx*4 + 0x4733ac]
mov eax, 7
mov word [esi], ax
jmp case.0x4722a6.99
mov edx, 8
jmp 0x4722ef
mov eax, 0xc
mov word [esi], ax
jmp case.0x4722a6.99
mov edx, 0xa
jmp 0x4722ef
mov eax, 0xd
mov word [esi], ax
jmp case.0x4722a6.99
mov edx, 9
jmp 0x4722ef
mov eax, 0xb
mov word [esi], ax
jmp case.0x4722a6.99
mov edx, 0x20
mov word [esi], dx
mov eax, esi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4722f7
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.004ca630
add esp, 0xc
mov ecx, esi
jmp 0x472224
mov dword [esp + 0x14], 0x4f5ac4
movzx ebp, word [0x516518]
mov ecx, edi
lea ecx, [ecx]
movzx eax, word [ecx]
test ax, ax
je 0x472349
cmp ax, bp
je 0x47237c
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x472338
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
push ecx
push edi
push edx
call fcn.0040a220
add esp, 0xc
test eax, eax
jne 0x472e8f
mov ecx, dword [esp + 0x10]
push 0x4f5ac4
push str.Out_of_memory.
call fcn.00477180
jmp 0x472e94
cmp word [ecx], 0
je 0x472349
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x472398.99
movzx edx, byte [eax + 0x47340c]
jmp dword [edx*4 + 0x4733e8]
mov eax, 7
mov word [esi], ax
jmp case.0x472398.99
mov edx, 8
jmp 0x4723e1
mov eax, 0xc
mov word [esi], ax
jmp case.0x472398.99
mov edx, 0xa
jmp 0x4723e1
mov eax, 0xd
mov word [esi], ax
jmp case.0x472398.99
mov edx, 9
jmp 0x4723e1
mov eax, 0xb
mov word [esi], ax
jmp case.0x472398.99
mov edx, 0x20
mov word [esi], dx
mov eax, esi
lea ebx, [eax + 2]
lea esp, [esp]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4723f0
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.004ca630
add esp, 0xc
mov ecx, esi
jmp 0x472330
mov eax, 4
jmp 0x472e94
push 0xffffffffffffffff
push esi
push str.sH_3______
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4725c7
test edi, edi
je 0x472e8f
push 0x50b3f0
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
test eax, eax
je 0x472555
mov ebx, 0x50b414
call fcn.00409d30
test eax, eax
je 0x472e8f
push 0x64
add eax, 2
push eax
push str._____:____.___n__t
call fcn.004cb3f1
movzx ebx, word [0x516518]
add esp, 0xc
xor eax, eax
mov word [0x5165e8], ax
mov ecx, str._____:____.___n__t
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x472e8f
lea esp, [esp]
cmp ax, bx
je 0x4724c6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4724b0
jmp 0x472e8f
cmp word [ecx], 0
je 0x472e8f
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4724e6.99
movzx edx, byte [eax + 0x473448]
jmp dword [edx*4 + 0x473424]
mov eax, 7
jmp 0x472525
mov edx, 8
mov word [esi], dx
jmp case.0x4724e6.99
mov eax, 0xc
jmp 0x472525
mov edx, 0xa
mov word [esi], dx
jmp case.0x4724e6.99
mov eax, 0xd
jmp 0x472525
mov edx, 9
mov word [esi], dx
jmp case.0x4724e6.99
mov eax, 0xb
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x472530
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.004ca630
add esp, 0xc
mov ecx, esi
jmp 0x4724a0
push 7
push 0x50b41c
call fcn.004a4b10
add esp, 4
push eax
push edi
call fcn.004ca3fb
add esp, 0xc
test eax, eax
jne 0x47257c
mov byte [0x51646f], al
jmp 0x472e8f
push 0x51b6cd
push 0x51b6cc
push 0x51b6cb
push 0x51646e
push 0x51b6c8
push 0x51b6ca
push 0x51645b
push 0x51645a
push 0x51b6c9
push 0x51651c
push 0x51b6c4
push 0x51b6c0
mov eax, edi
call fcn.0040d950
add esp, 0x30
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.sH_304_b.___6_f__7_
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4725fe
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
mov dword [0x5164ec], eax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.sH_304_f____:_
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472648
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
mov dword [0x516508], eax
cmp eax, 0xa
jge 0x472e8f
mov dword [0x516508], 0xa
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b4ac
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472692
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
mov dword [0x516504], eax
cmp eax, 1
jge 0x472e8f
mov dword [0x516504], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b4ec
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4726e9
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
cmp eax, 0xff
jle 0x4726d5
mov eax, 0xff
mov byte [0x5163d7], al
jmp 0x472e8f
cmp eax, 1
jge 0x4726df
mov eax, 1
mov byte [0x5163d7], al
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b528
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472732
test edi, edi
je 0x472726
push eax
mov esi, edi
call fcn.00409e20
add esp, 4
mov byte [0x51b02e], 0
cmp eax, 2
je 0x472e8f
mov byte [0x51b02e], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b55c
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472789
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
cmp eax, 0xff
jle 0x472775
mov eax, 0xff
mov dword [0x516500], eax
jmp 0x472e8f
cmp eax, 1
jge 0x47277f
mov eax, 1
mov dword [0x516500], eax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_v.87__3
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4727c0
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
mov dword [0x5164f0], eax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b5b8
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472809
test edi, edi
je 0x4727fd
push eax
mov esi, edi
call fcn.00409e20
add esp, 4
mov byte [0x51b6ce], 0
cmp eax, 2
je 0x472e8f
mov byte [0x51b6ce], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b5d8
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472833
mov byte [0x51aff2], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_r5
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472861
mov eax, dword [esp + 0x10]
mov byte [eax + 0xadf], 1
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b638
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x4728e7
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0041ac70
fld qword [0x50f940]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x4728aa
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4728ae
fstp st(1)
jmp 0x4728b0
fstp st(0)
fld qword [0x50f810]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x14], eax
fmulp st(1)
fldcw word [esp + 0x14]
fistp qword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [0x5164fc], ecx
fldcw word [esp + 0x10]
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b658
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472946
test edi, edi
je 0x472e8f
mov esi, edi
call fcn.0040e380
mov dword [0x5164f8], eax
test eax, eax
jns 0x47292c
mov dword [0x5164f8], 0
jmp 0x472e8f
cmp eax, 0x1f4
jle 0x472e8f
mov dword [0x5164f8], 0x1f4
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_v__01_a5__
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472a2b
test edi, edi
je 0x472e8f
cmp word [edi + 2], ax
jne 0x4729f1
movzx eax, word [edi]
cmp eax, 0x23
je 0x472d6b
cmp ax, word [0x516514]
je 0x472d6b
cmp ax, word [0x516518]
je 0x472d6b
cmp ax, word [0x516510]
je 0x472d6b
cmp eax, 0x21
je 0x472d6b
cmp eax, 0x5e
je 0x472d6b
cmp eax, 0x2b
je 0x472d6b
cmp eax, 0x24
je 0x472d6b
cmp eax, 0x7e
je 0x472d6b
cmp eax, 0x2a
je 0x472d6b
cmp eax, 0x3c
je 0x472d6b
cmp eax, 0x3e
je 0x472d6b
push 0xf
push edi
push 0x516490
call fcn.004cb3f1
add esp, 0xc
xor edx, edx
mov eax, 0x516490
mov word [0x5164ae], dx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x472a12
sub eax, edx
sar eax, 1
mov dword [0x516474], eax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_r_____
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472aa1
test edi, edi
je 0x472e8f
movzx eax, word [edi]
cmp eax, 0x23
je 0x472d6b
cmp ax, word [0x516514]
je 0x472d6b
cmp ax, word [0x516510]
je 0x472d6b
cmp eax, 0x2e
je 0x472d6b
cmp dword [0x516474], 1
jne 0x472a96
cmp ax, word [0x516490]
je 0x472d6b
mov word [0x516518], ax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_f45_3
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472b0e
test edi, edi
je 0x472e8f
movzx eax, word [edi]
cmp ax, word [0x516518]
je 0x472d6b
cmp ax, word [0x516510]
je 0x472d6b
cmp eax, 0x2e
je 0x472d6b
cmp dword [0x516474], 1
jne 0x472b03
cmp ax, word [0x516490]
je 0x472d6b
mov word [0x516514], ax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push str.s_f4_8_1_
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472b84
test edi, edi
je 0x472e8f
movzx eax, word [edi]
cmp eax, 0x23
je 0x472d6b
cmp ax, word [0x516518]
je 0x472d6b
cmp ax, word [0x516514]
je 0x472d6b
cmp eax, 0x2e
je 0x472d6b
cmp dword [0x516474], 1
jne 0x472b79
cmp ax, word [0x516490]
je 0x472d6b
mov word [0x516510], ax
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b6f8
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472c07
test edi, edi
je 0x472bea
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov edx, dword [esp + 0x2c]
push 0x5163d6
xor ecx, ecx
mov edi, 0x5164e8
call fcn.00413440
add esp, 4
test al, al
jne 0x472e8f
push 0x4ec0ec
call fcn.004a4b10
mov ecx, dword [esp + 0x14]
add esp, 4
push ebp
push eax
call fcn.00477180
jmp 0x472e94
push str.P__09_3yo
call fcn.004a4b10
mov ecx, dword [esp + 0x14]
add esp, 4
push ebp
push eax
call fcn.00477180
jmp 0x472e94
push 0xffffffffffffffff
push esi
push 0x50b760
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472c57
test edi, edi
je 0x472c4b
mov esi, edi
call fcn.0040e380
test eax, eax
js 0x472d6b
cmp eax, 0x64
jg 0x472d6b
mov byte [0x51b02f], al
jmp 0x472e8f
xor eax, eax
mov byte [0x51b02f], al
jmp 0x472e8f
push 0xffffffffffffffff
push esi
push 0x50b788
call fcn.004a4b10
add esp, 4
mov ecx, ebp
call fcn.004ac110
add esp, 8
test eax, eax
jne 0x472415
test edi, edi
jne 0x472c82
mov edi, 0x4f5ac4
movzx eax, word [0x516510]
push eax
push edi
call fcn.004ca9cb
mov esi, eax
add esp, 8
mov ebx, 0x4f5ac4
test esi, esi
je 0x472cb8
lea eax, [esi + 2]
call fcn.00409d80
mov ebx, eax
lea eax, [esi - 2]
mov edx, edi
call fcn.00409da0
xor ecx, ecx
mov word [eax + 2], cx
test byte [0x51f7b0], 1
jne 0x472d3f
or dword [0x51f7b0], 1
push 0x50b870
mov dword [esp + 0x104], 7
call fcn.004a4b10
push 0x50b840
mov dword [0x51f190], eax
call fcn.004a4b10
push 0x50b80c
mov dword [0x51f194], eax
call fcn.004a4b10
push 0x50b7ec
mov dword [0x51f198], eax
call fcn.004a4b10
push 0x50b7bc
mov dword [0x51f19c], eax
call fcn.004a4b10
push 0x50b7a4
mov dword [0x51f1a0], eax
call fcn.004a4b10
add esp, 0x18
mov dword [0x51f1a4], eax
mov dword [esp + 0x100], 0xffffffff
cmp word [edi], 0
mov esi, 5
je 0x472d76
xor esi, esi
lea esp, [esp]
mov edx, dword [esi*4 + 0x51f190]
push edx
push edi
call fcn.004c9bad
add esp, 8
test eax, eax
je 0x472d76
inc esi
cmp esi, 6
jne 0x472d50
push ebp
push 0x4ec0ec
jmp 0x4719d0
test byte [0x51f7b0], 2
jne 0x472ddb
or dword [0x51f7b0], 2
push 0x4eb868
mov dword [esp + 0x104], 8
call fcn.004a4b10
push 0x4e82a8
mov dword [0x51f1a8], eax
call fcn.004a4b10
push 0x4e99c8
mov dword [0x51f1ac], eax
call fcn.004a4b10
push 0x50b89c
mov dword [0x51f1b0], eax
call fcn.004a4b10
add esp, 0x10
mov dword [0x51f1b4], eax
mov dword [esp + 0x100], 0xffffffff
cmp word [ebx], 0
mov ebp, 2
je 0x472e16
xor ebp, ebp
jmp 0x472df0
mov eax, dword [ebp*4 + 0x51f1a8]
push eax
push ebx
call fcn.004c9bad
add esp, 8
test eax, eax
je 0x472e16
inc ebp
cmp ebp, 4
jne 0x472df0
push ebx
push 0x4ec128
jmp 0x4719d0
test esi, esi
je 0x472e1f
cmp esi, 5
jne 0x472e25
mov dword [0x51b00c], ebp
cmp esi, 1
je 0x472e2f
cmp esi, 5
jne 0x472e35
mov dword [0x51b010], ebp
cmp esi, 3
je 0x472e3f
cmp esi, 5
jne 0x472e45
mov dword [0x51b014], ebp
cmp esi, 2
je 0x472e4f
cmp esi, 5
jne 0x472e55
mov dword [0x51b018], ebp
cmp esi, 4
je 0x472e5f
cmp esi, 5
jne 0x472e8f
mov dword [0x51b01c], ebp
jmp 0x472e8f
test ebx, ebx
setne cl
mov byte [0x51e640], 1
mov byte [0x51e641], cl
test edi, edi
je 0x472e8f
cmp word [edi], 0
je 0x472e8f
mov ebx, edi
mov eax, 0x51e644
call fcn.00414350
mov eax, 3
mov ecx, dword [esp + 0xf8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xf4
ret 4
cmp edi, ebx
je 0x472e8f
cmp word [edi], 0x2a
jne 0x472edc
mov ax, word [edi + 2]
call fcn.00409d00
cmp ax, 0x49
jne 0x472edc
movzx eax, word [edi + 4]
add edi, 4
cmp eax, 0x20
je 0x472ed9
cmp eax, 9
jne 0x472edc
add edi, 2
push 0x50ac4c
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x472f3c
cmp byte [0x51f18d], 0
jne 0x472e8f
cmp dword [0x51dcc0], ebx
jne 0x472e8f
fldz
sub esp, 8
fstp qword [esp]
push ebx
push 0x50ac74
call fcn.004a4b10
add esp, 4
push eax
push 0x1030
push 0x50ac90
call fcn.004a4b10
add esp, 4
push eax
call fcn.004b0b80
add esp, 0x18
jmp 0x472e8f
push 0x50acd4
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x472f60
mov byte [0x5163b2], 1
jmp 0x472e8f
push 0x50acf4
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x472f84
mov byte [0x5163b2], 0
jmp 0x472e8f
push 0x50ad18
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x472fa8
mov byte [0x51b94f], 1
jmp 0x472e8f
push 0x50ad48
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x472fcc
mov byte [0x51b94f], 0
jmp 0x472e8f
push 0x50ad7c
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x473072
push 0x50ad7c
call fcn.004a4b10
add esp, 4
lea edx, [eax + 2]
jmp 0x473000
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x473000
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
call fcn.00409d80
mov esi, eax
movzx eax, word [esi]
cmp ax, word [0x516510]
je 0x47302a
cmp eax, 0x3d
jne 0x473034
lea eax, [esi + 2]
call fcn.00409d80
mov esi, eax
mov edx, esi
sub edx, ebp
push 0
sar edx, 1
mov eax, 0x4001
sub eax, edx
push eax
push 0xffffffffffffffff
push 1
push 0x4ec724
push 0x50ada8
call fcn.004a4b10
add esp, 4
push eax
push esi
xor eax, eax
call fcn.004ac860
add esp, 0x1c
mov ebx, esi
mov eax, 0x51dca8
jmp 0x472e8a
push 0x50adc0
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x473109
push 0x50adc0
call fcn.004a4b10
add esp, 4
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4730a0
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
call fcn.00409d80
mov esi, eax
movzx eax, word [esi]
cmp ax, word [0x516510]
je 0x4730ca
cmp eax, 0x3d
jne 0x4730d4
lea eax, [esi + 2]
call fcn.00409d80
mov esi, eax
mov ecx, esi
push 0
sub ecx, ebp
sar ecx, 1
mov edx, 0x4001
sub edx, ecx
push edx
push 0xffffffffffffffff
push 1
push 0x4ec724
push 0x50adec
push esi
xor eax, eax
call fcn.004ac860
add esp, 0x1c
mov ebx, esi
mov eax, 0x51dc9c
jmp 0x472e8a
push 0x50adf4
call fcn.004a4b10
add esp, 4
mov ecx, edi
call fcn.004ac420
cmp edi, eax
jne 0x473187
push 0x50adf4
call fcn.004a4b10
add esp, 4
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x473131
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
call fcn.00409d80
movzx ecx, word [eax]
cmp cx, word [0x516510]
je 0x473159
cmp ecx, 0x3d
jne 0x473161
add eax, 2
call fcn.00409d80
push 0x518580
mov ecx, eax
call fcn.00498710
add esp, 4
test al, al
jne 0x472e8f
push 0x4f5ac4
push 0x50ae20
jmp 0x4719d0
mov ax, word [edi + 8]
call fcn.00409d00
mov si, ax
mov eax, 0x4c
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0xa]
call fcn.00409d00
mov si, ax
mov eax, 0x69
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi]
call fcn.00409d00
mov si, ax
mov eax, 0x53
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0x10]
call fcn.00409d00
mov si, ax
mov eax, 0x45
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0x12]
call fcn.00409d00
mov si, ax
mov eax, 0x72
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 2]
call fcn.00409d00
mov si, ax
mov eax, 0x68
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 4]
call fcn.00409d00
mov si, ax
mov eax, 0x6f
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 6]
call fcn.00409d00
mov si, ax
mov eax, 0x77
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0xc]
call fcn.00409d00
mov si, ax
mov eax, 0x6e
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0xe]
call fcn.00409d00
mov si, ax
mov eax, 0x65
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0x14]
call fcn.00409d00
mov si, ax
mov eax, 0x72
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0x16]
call fcn.00409d00
mov si, ax
mov eax, 0x6f
call fcn.00409d00
cmp si, ax
jne 0x473311
mov ax, word [edi + 0x18]
call fcn.00409d00
mov si, ax
mov eax, 0x72
call fcn.00409d00
cmp si, ax
jne 0x473311
mov byte [0x51b94e], 1
jmp 0x472e8f
lea eax, [esp + 0x34]
call fcn.00473460
mov dword [esp + 0x100], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
push 0x4f0720
mov byte [esp + 0x104], 1
call fcn.004a4b10
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, edi
call fcn.00477a40
add esp, 0x10
test al, al
jne 0x473382
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push ebp
push edx
call fcn.00477180
mov edi, eax
lea ecx, [esp + 0x20]
call fcn.00413fb0
lea esi, [esp + 0x34]
call fcn.00473520
mov eax, edi
jmp 0x472e94
mov eax, dword [0x518580]
mov edx, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x38]
push ecx
push edi
push edx
call fcn.0046ca30
mov edi, eax
neg edi
sbb edi, edi
and edi, 3
setne al
mov byte [0x51f18d], al
jmp 0x473369