Function at 0x472c1c
Capabilities:
Check for time delay via gettickcount
Check for unmoving mouse cursor
Get common file path
Log keystrokes via polling
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x380
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp + 0x48], edi
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
push eax
mov dword [ebp + 0x60], ecx
call fcn.00437e65
push 2
lea eax, [ebp + 0x74]
push eax
push 0x4b11d8
call fcn.0043fbfd
mov byte [ebp + 0x33], al
mov eax, dword [ebp + 0x74]
lea ecx, [ebp + 0x20]
add esp, 0x10
mov word [ebp + 0x20], di
mov esi, eax
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x4c], ecx
jmp 0x472c73
cmp cx, 0x3d
je 0x472c7d
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
jne 0x472c6b
jmp 0x472c86
mov word [eax], di
add eax, 2
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x7c]
push esi
mov dword [ebp + 0x5c], eax
xor bl, bl
call fcn.0040f54c
cmp word [esi], 0x3a
pop ecx
jne 0x472cb7
cmp word [esi + 2], 0x3a
jne 0x472cb7
mov edi, dword [0x4c0fe0]
inc bl
add esi, 4
mov dword [ebp + 0x5c], 0x4c0fb8
mov eax, dword [ebp + 0x60]
and dword [ebp + 0x18], 0
cmp byte [eax + 0x92], 0
jne 0x472ce0
test byte [eax + 9], 0xf
jne 0x472ce0
mov ecx, dword [ebp + 0x60]
push 1
push 0
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0044c7f3
jmp 0x472cf1
mov ecx, dword [ebp + 0x60]
push 1
push 0
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0044bafc
mov esi, dword [ebp + 0x18]
lea ecx, [ebp + 0x1c]
call fcn.0043dd7e
mov ecx, dword [ebp + 0x60]
push 1
push 0
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x4c]
call fcn.0044c8eb
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x68], eax
cmp word [esi], 0x40
jne 0x472fb8
push 0x4b11bc
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x472f0f
mov esi, dword [ebp + 0x68]
push 9
push esi
push 0x4b11b0
mov dword [ebp + 0x7c], 0xfff80000
mov dword [ebp + 0x74], esi
call fcn.0043917b
add esp, 0xc
test al, al
je 0x472dbf
mov ax, word [esi + 0x12]
or ax, 0x20
cmp ax, 0x61
jb 0x472d68
cmp ax, 0x7a
jbe 0x472dbf
lea ecx, [ebp + 0x78]
call fcn.0043dd7e
push 0x23
pop ecx
mov esi, 0x4b1120
lea edi, [ebp - 0xd0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x60]
push 1
push 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0xd0]
push eax
movsw word es:[edi], word [esi]
call fcn.0044bafc
mov ecx, dword [ebp + 0x60]
push 1
push dword [ebp + 0x78]
call fcn.00414fae
add dword [ebp + 0x74], 0x12
mov eax, dword [ebp + 0x74]
cmp word [eax], 0
je 0x472db7
add dword [ebp + 0x74], 2
lea ecx, [ebp + 0x78]
call fcn.00437e1a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.0044957c
test byte [ebp + 0x7c], 0x40
mov esi, dword [sym.imp.USER32.DLL_SendMessageW]
pop ecx
pop ecx
mov ebx, 0xffff
je 0x472dea
xor edi, edi
push edi
push edi
push 0x1a
push ebx
call esi
jmp 0x472dec
xor edi, edi
test byte [ebp + 0x7c], 0x20
je 0x472df9
push edi
push edi
push 0x1a
push ebx
call esi
test byte [ebp + 0x7c], 0x10
mov ebx, dword [sym.imp.SHELL32.DLL_SHChangeNotify]
je 0x472eaf
lea ecx, [ebp + 0x78]
call fcn.0043dd7e
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
cmp ax, 0x3a
mov esi, 0x2000
jne 0x472e37
add dword [ebp + 0x74], 2
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.004051ad
pop ecx
pop ecx
jmp 0x472e61
cmp ax, di
je 0x472e40
add dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
cmp ax, 0x2d
jne 0x472e55
add dword [ebp + 0x74], 2
push 4
pop esi
jmp 0x472e61
cmp ax, 0x2b
jne 0x472e61
push 2
pop esi
add dword [ebp + 0x74], esi
mov ecx, dword [ebp + 0x60]
push edi
push 0x2c
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.0043359b
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x74], eax
cmp word [eax], di
jne 0x472e9b
push 1
lea eax, [ebp - 0x314]
push 0x10
push eax
push edi
mov word [ebp - 0x314], di
mov dword [ebp + 0x74], eax
call dword [sym.imp.SHELL32.DLL_SHGetSpecialFolderPathW]
push edi
push dword [ebp + 0x74]
push 0x1005
push esi
call ebx
lea ecx, [ebp + 0x78]
call fcn.00437e1a
test byte [ebp + 0x7c], 8
je 0x472ec3
push edi
push edi
push 0x1000
push 0x8000000
call ebx
test byte [ebp + 0x7c], 4
je 0x472ece
call fcn.004038ab
test byte [ebp + 0x7c], 2
je 0x472ef2
push edi
push 0x4c1130
push 0x4b1114
push 0x4b10f4
call fcn.004391ea
add esp, 0x10
call dword [0x4c1130]
cmp dword [ebp + 0x7c], edi
jl 0x472f08
test byte [ebp + 0x7c], 1
jne 0x472f03
test byte [ebp + 0x7c], 0x7e
jne 0x472f08
call fcn.00486049
xor esi, esi
jmp 0x473d4c
push 0x4b10d8
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x472fb8
push dword [ebp + 0x68]
push 0x4a9cdc
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x472f78
push dword [ebp + 0x68]
push 0x4af564
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x472f65
push dword [ebp + 0x68]
push 0x4aa4b4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x472f08
cmp byte [0x4c0e94], 0
je 0x472f78
mov ecx, 0x4c1778
mov byte [0x4c0e94], 0
call fcn.004386bb
jmp 0x472f08
cmp byte [0x4c4003], 0
je 0x472f90
push dword [0x4c0ea4]
mov byte [0x4c0e94], 1
jmp 0x472fb1
mov eax, dword [0x4c0fe0]
test eax, eax
je 0x472f08
cmp dword [eax + 0x18], 0
je 0x472f08
mov byte [0x4c0e94], 1
push dword [eax + 0x18]
call fcn.00410843
jmp 0x472fd1
mov ax, word [esi]
test ax, ax
jne 0x472fd7
neg bl
sbb ebx, ebx
and ebx, dword [ebp + 0x60]
push ebx
push dword [ebp + 0x5c]
call fcn.00410eb0
pop ecx
pop ecx
jmp 0x472f08
cmp ax, 0x40
je 0x472ffc
neg bl
sbb ebx, ebx
and ebx, dword [ebp + 0x60]
push ebx
push dword [ebp + 0x5c]
call fcn.00410eb0
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x28], 0
pop ecx
pop ecx
je 0x472f08
test edi, edi
je 0x473005
mov edi, dword [edi + 0x78]
jmp 0x47300a
mov edi, 0x4a69d4
push edi
lea ecx, [ebp + 0x14]
call fcn.00446497
xor eax, eax
mov ax, word [esi]
mov edx, esi
mov ecx, esi
xor edi, edi
jmp 0x47302e
cmp ax, 0x3a
jne 0x473029
lea edx, [ecx + 2]
inc ecx
inc ecx
mov ax, word [ecx]
cmp ax, di
jne 0x473020
push edx
lea ecx, [ebp + 0x24]
call fcn.00446497
xor ecx, ecx
mov cx, word [esi]
xor edx, edx
cmp cx, di
mov eax, esi
mov dword [ebp + 0x74], eax
je 0x47306b
cmp cx, 0x2e
jne 0x473055
mov edx, eax
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
jne 0x47304d
cmp edx, edi
mov dword [ebp + 0x74], eax
je 0x47306b
mov eax, edx
mov dword [ebp + 0x74], eax
cmp word [eax], 0x2e
mov dword [ebp + 0x58], edi
jne 0x47307f
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x74]
push eax
call fcn.00437e65
cmp dword [ebp + 0x58], edi
pop ecx
je 0x4730a4
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x58], eax
lea eax, [ebp + 0x74]
push eax
call fcn.00405172
mov eax, dword [ebp + 0x74]
pop ecx
mov word [eax], di
mov ebx, dword [ebp + 0x78]
test ebx, ebx
mov byte [ebp + 0x57], 0
mov byte [ebp + 0x74], 0
je 0x47314d
cmp word [ebx], 0
mov ecx, ebx
je 0x47314d
push 0x7e
pop edi
xor edx, edx
mov dx, word [ecx]
mov eax, edx
call fcn.00437e2d
test al, al
jne 0x47314d
cmp dx, 0x2e
je 0x47313c
cmp dx, 0x24
je 0x47313c
cmp dx, 0x25
je 0x47313c
cmp dx, 0x2a
jne 0x4730f4
or byte [ebp + 0x74], 4
jmp 0x473141
cmp dx, di
jne 0x473141
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x473109
or byte [ebp + 0x74], 2
mov ecx, eax
jmp 0x473141
cmp dx, di
jne 0x473141
lea eax, [ecx + 2]
cmp word [eax], 0x2e
jne 0x47311d
or byte [ebp + 0x74], 8
jmp 0x473105
cmp dx, di
jne 0x473141
lea eax, [ecx + 2]
cmp word [eax], 0x2a
jne 0x473131
or byte [ebp + 0x74], 0xa
jmp 0x473105
cmp dx, di
jne 0x473141
or byte [ebp + 0x74], 1
jmp 0x473141
mov al, byte [ecx]
mov byte [ebp + 0x57], al
inc ecx
inc ecx
cmp word [ecx], 0
jne 0x4730c6
and dword [ebp + 8], 0
and dword [ebp + 0xc], 0
cmp byte [ebp + 0x74], 0
je 0x47316d
push dword [ebp + 0x74]
mov ecx, dword [ebp + 0x60]
lea eax, [ebp + 0x1c]
push eax
call fcn.00452471
mov dword [ebp + 0x68], eax
lea ecx, [ebp + 0x10]
call fcn.0043dd7e
cmp byte [ebp + 0x57], 0
je 0x473196
cmp byte [ebp + 0x57], 0x2e
je 0x473196
lea eax, [ebp + 8]
push eax
push ebx
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00451bbd
add esp, 0x10
push esi
lea ecx, [ebp + 0xc]
call fcn.00446497
cmp dword [ebp + 0x58], 0
mov edi, dword [ebp + 0xc]
mov dword [ebp + 0x44], edi
jne 0x4731b2
mov dword [ebp + 0x58], 0x4a69d4
push pe_nt_image_headers32
pop ebx
cmp word [esi], bx
je 0x473d68
and dword [ebp + 0x38], 0
mov eax, 0x4c1b94
push eax
mov dword [ebp + 0x64], eax
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ebx, dword [ebp + 0x5c]
mov byte [ebp + 0x7b], 1
mov byte [ebp + 0x77], 0
mov byte [ebp + 0x7f], 0
mov dword [ebp + 0x3c], ebx
cmp byte [ebp + 0x77], 0
je 0x4731ed
mov byte [ebp + 0x7f], 1
push 0x3a
lea eax, [ebp + 0x50]
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x50], edi
call fcn.004128fe
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x3a
pop ecx
mov byte [ebp + 0x77], 0
jne 0x47321f
and word [eax], 0
lea edi, [eax + 2]
cmp word [edi], 0
mov dword [ebp + 0x44], edi
je 0x47321f
mov byte [ebp + 0x77], 1
cmp byte [ebp + 0x7b], 0
je 0x473242
push dword [ebp + 0x5c]
push 0x4ac1dc
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473242
mov eax, dword [ebp + 0x14]
mov byte [ebp + 0x7f], 1
mov dword [ebp + 0x5c], eax
push dword [ebp + 0x5c]
mov esi, dword [ebx + 0x28]
push 0x4a7c9c
mov byte [ebp + 0x7b], 0
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x4732a7
mov ebx, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
test esi, esi
mov dword [ebp + 0x3c], ebx
je 0x47326e
lea eax, [esi + 0x78]
jmp 0x473282
or dword [ebp + 0x48], 1
push 0x4a69d4
lea ecx, [ebp + 0x2c]
call fcn.00446497
lea eax, [ebp + 0x2c]
test byte [ebp + 0x48], 1
mov eax, dword [eax]
mov dword [ebp + 0x5c], eax
je 0x473299
and dword [ebp + 0x48], 0xfffffffe
lea ecx, [ebp + 0x2c]
call fcn.00437e1a
cmp byte [ebp + 0x77], 0
mov byte [ebp + 0x7f], 1
jne 0x4731e9
xor ebx, ebx
cmp esi, ebx
je 0x473383
cmp esi, dword [ebp + 0x38]
je 0x473383
cmp byte [ebp + 0x77], bl
jne 0x4732d4
push dword [ebp + 0x5c]
mov eax, dword [esi + 0x78]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x4733d1
cmp dword [esi + 0x80], ebx
mov dword [ebp + 0x40], ebx
jle 0x473314
mov eax, dword [esi + 0x7c]
mov edi, dword [ebx + eax + 4]
test edi, edi
je 0x473303
mov eax, dword [edi + 0x78]
test eax, eax
je 0x473303
push dword [ebp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x4733cf
inc dword [ebp + 0x40]
mov eax, dword [ebp + 0x40]
add ebx, 0x10
cmp eax, dword [esi + 0x80]
jl 0x4732df
mov eax, dword [esi + 0xc4]
xor ebx, ebx
cmp dword [eax], ebx
jle 0x47335e
mov eax, dword [esi + 0xc0]
mov eax, dword [eax]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x473353
mov eax, dword [edi + 8]
test eax, eax
je 0x473353
push dword [ebp + 0x5c]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x473353
cmp byte [ebp + 0x77], al
je 0x47371e
cmp dword [edi + 4], 0xf
je 0x4733bb
mov eax, dword [esi + 0xc4]
inc ebx
cmp ebx, dword [eax]
jl 0x473320
cmp byte [ebp + 0x77], 0
jne 0x473d18
push dword [ebp + 0x5c]
lea eax, [esi + 0x160]
push eax
call fcn.00486a0f
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
jne 0x473528
cmp byte [ebp + 0x7f], 0
jne 0x473d18
cmp byte [ebp + 0x33], 0
jne 0x473d18
mov eax, dword [ebp + 0x3c]
mov ebx, dword [eax + 0x24]
mov dword [ebp + 0x38], esi
xor esi, esi
cmp ebx, esi
mov dword [ebp + 0x3c], ebx
je 0x473807
cmp ebx, 0x4c0fb8
je 0x473807
jmp 0x4733c7
mov eax, dword [edi + 0x1c]
mov ebx, dword [eax + 0x150]
mov dword [ebp + 0x3c], ebx
mov edi, dword [ebp + 0x44]
jmp 0x4731e3
mov esi, edi
mov edi, dword [ebp + 0x58]
push edi
push 0x4b10c8
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473744
push edi
push 0x4b10c0
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47341a
mov ecx, dword [esi + 0xf4]
xor edi, edi
push edi
push edi
push dword [ebp + 0x60]
push esi
push dword [ebp + 0x4c]
call fcn.0048d8cd
cmp dword [ebp + 0x64], edi
mov esi, eax
jmp 0x47380a
push edi
push 0x4b10b8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473448
mov ecx, dword [esi + 0xf4]
lea eax, [ebp + 0x64]
push eax
push 1
push dword [ebp + 0x60]
push esi
push dword [ebp + 0x4c]
call fcn.0048d8cd
jmp 0x473cbc
push edi
push 0x4b10b4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x4734c9
mov eax, dword [esi + 0xf4]
mov edi, dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x18]
xor ecx, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x64]
cmp eax, ecx
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], ecx
mov dword [ebp], 1
mov dword [ebp + 4], ecx
je 0x4734a0
and dword [ebp + 0x64], ecx
push eax
call edi
lea eax, [ebp - 0x1c]
push eax
push esi
push 0x465
push dword [esi + 0x18]
call dword [sym.imp.USER32.DLL_SendMessageW]
cmp dword [ebp + 0x64], 0
mov esi, eax
je 0x473d2c
push dword [ebp + 0x64]
call edi
jmp 0x473d2c
push edi
push 0x4b10b0
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473965
push edi
push 0x4b10ac
call fcn.004391ba
test al, al
mov edi, dword [esi + 0x18]
pop ecx
pop ecx
je 0x4734f9
xor ebx, ebx
jmp 0x473841
mov eax, dword [ebp + 0x64]
test eax, eax
je 0x47350b
and dword [ebp + 0x64], 0
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push 0
push esi
push dword [ebp + 0x24]
push dword [ebp + 0x58]
push dword [ebp + 0x68]
push edi
push dword [ebp + 0x60]
call fcn.004381eb
add esp, 0x1c
jmp 0x473805
mov edi, dword [ebp + 0x58]
cmp word [edi], 0
jne 0x47355a
push dword [ebp + 0x68]
lea ecx, [ebx + 4]
call fcn.0044655b
mov ebx, dword [ebx + 0xc]
cmp word [ebx], 0
je 0x473805
push dword [ebp + 0x68]
mov ecx, dword [ebp + 0x60]
push ebx
call fcn.0043d658
jmp 0x473805
push edi
push 0x4b10a4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473615
mov eax, dword [ebp + 0x68]
movzx eax, word [eax]
xor edi, edi
push eax
mov dword [ebp + 0x74], edi
call fcn.004129ca
add esp, 4
test al, al
jne 0x47358f
cmp dword [ebp + 0x64], edi
jmp 0x473d1c
push dword [esi + 0x18]
call dword [sym.imp.USER32.DLL_GetMenu]
mov esi, eax
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
cmp esi, edi
pop ecx
pop ecx
je 0x4735cc
mov eax, dword [ebp + 0x74]
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
or eax, 0x400
push eax
push dword [ebx + 0x14]
push dword [ebx + 0x10]
call dword [sym.imp.USER32.DLL_EnableMenuItem]
cmp dword [ebp + 0x74], edi
je 0x4735d6
and byte [ebx], 0xfe
jmp 0x4735d9
or byte [ebx], 1
lea eax, [ebx + 0xc]
push eax
lea ecx, [ebp + 0x74]
call fcn.004464e8
push 0x4ac430
lea ecx, [ebp + 0x74]
call fcn.0043ddea
test byte [ebx], 1
mov eax, 0x4aa5a0
jne 0x473601
mov eax, 0x4ab2d4
mov ecx, dword [ebp + 0x60]
push eax
push dword [ebp + 0x74]
call fcn.0044d2ed
lea ecx, [ebp + 0x74]
jmp 0x473714
push edi
push 0x4b10a0
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473805
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
jne 0x473637
add dword [ebp + 0x68], 2
lea ecx, [ebp + 0x78]
call fcn.0043dd7e
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
lea ecx, [ebp + 0x74]
call fcn.0043dd7e
mov edi, dword [ebp + 0x60]
push 0x2c
pop esi
push esi
push 0x3b
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push 0x3b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push 0x3b
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push dword [ebx + 0x10]
mov esi, dword [sym.imp.USER32.DLL_wsprintfW]
lea eax, [ebp - 0x108]
push 0x4aae24
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
push dword [ebp + 0x78]
mov ecx, edi
call fcn.0043d658
movzx eax, word [ebx + 2]
push eax
mov edi, 0x4a7468
lea eax, [ebp - 0x108]
push edi
push eax
call esi
mov ecx, dword [ebp + 0x60]
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
push dword [ebp + 0x7c]
call fcn.0043d658
push dword [ebx + 0x14]
lea eax, [ebp - 0x108]
push edi
push eax
call esi
mov ecx, dword [ebp + 0x60]
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
push dword [ebp + 0x74]
call fcn.0043d658
lea ecx, [ebp + 0x74]
call fcn.00437e1a
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
lea ecx, [ebp + 0x78]
call fcn.00437e1a
jmp 0x473805
push dword [ebp + 0x58]
push 0x4b10c8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47381e
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x23
je 0x47381e
mov esi, edi
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x23
sete bl
test bl, bl
je 0x473756
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
test bl, bl
pop ecx
pop ecx
je 0x4737ec
cmp dword [ebp + 0x74], 0
jle 0x4737e1
mov ebx, dword [esi + 0x18]
mov esi, dword [esi + 0xf4]
mov edi, 0x4c1b94
push edi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
test esi, esi
je 0x4737d8
test ebx, ebx
je 0x4737d8
xor edi, edi
call fcn.0043adad
push edi
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push edi
push dword [0x4c0ea0]
push 0x43ad3f
push 7
call dword [sym.imp.USER32.DLL_SetWindowsHookExW]
mov dword [0x4c12d4], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [0x4c12d4], edi
je 0x4737d1
mov dword [0x4c12dc], esi
mov dword [0x4c12d8], ebx
push 0x4c1b94
jmp 0x4737d9
push edi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x473805
jne 0x473805
xor edi, edi
call fcn.0043adad
jmp 0x473805
cmp dword [ebp + 0x74], 0
jle 0x4737fd
push dword [esi + 0x18]
call dword [sym.imp.USER32.DLL_SetCapture]
jmp 0x473805
jne 0x473805
call dword [sym.imp.USER32.DLL_ReleaseCapture]
xor esi, esi
cmp dword [ebp + 0x64], esi
je 0x473d2c
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x473d2c
push dword [ebp + 0x58]
push 0x4b10ac
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47394c
mov eax, dword [edi + 0x1c]
mov edi, dword [eax + 0x18]
add ebx, 0x1000
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
pop ecx
je 0x4738c4
cmp dword [ebp + 0x64], 0
je 0x473863
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
or dword [ebp + 0x74], 0xffffffff
or dword [ebp + 0x7c], 0xffffffff
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [ebp + 0x68]
xor bl, bl
cmp word [eax], 0x2a
pop ecx
jne 0x473887
mov bl, byte [eax]
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
test eax, eax
pop ecx
pop ecx
jle 0x473fea
test bl, bl
je 0x473fb8
cmp dword [ebp + 0x74], 0
jl 0x473fea
xor eax, eax
cmp dword [ebp + 0x74], eax
setne al
push eax
call dword [sym.imp.USER32.DLL_ShowCursor]
jmp 0x473fea
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
lea ecx, [ebp + 0x74]
call fcn.0043dd7e
add dword [ebp + 0x68], 2
push 0x2c
pop esi
push esi
push 0x3b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004408fe
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], 0
je 0x47390e
add dword [ebp + 0x68], 2
push esi
push 0x3b
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004408fe
add esp, 0x10
push 0x4af044
push dword [ebp + 0x7c]
mov eax, edi
cdq
push edx
push eax
push dword [ebp + 0x60]
call fcn.004401e1
push 0x4a7468
push dword [ebp + 0x74]
push ebx
push dword [ebp + 0x60]
call fcn.00440210
add esp, 0x24
lea ecx, [ebp + 0x74]
call fcn.00437e1a
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
jmp 0x473d00
push dword [ebp + 0x58]
push 0x4b10b0
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473ad5
mov esi, edi
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
pop ecx
jne 0x473854
lea eax, [ebp + 0x34]
push eax
call dword [sym.imp.USER32.DLL_GetCursorPos]
mov eax, dword [ebp + 0x34]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x28]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.DLL_ScreenToClient]
lea ecx, [ebp + 0x40]
call fcn.0043dd7e
lea ecx, [ebp + 0x44]
call fcn.0043dd7e
lea ecx, [ebp + 0x78]
call fcn.0043dd7e
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
lea ecx, [ebp + 0x74]
call fcn.0043dd7e
add dword [ebp + 0x68], 2
push 0x2c
pop esi
push esi
push 0x3b
pop edi
push edi
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00433754
push esi
push edi
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00433754
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00433754
push esi
push edi
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00433754
add esp, 0x40
push esi
push edi
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00433754
push dword [ebp + 0x40]
mov edi, dword [ebp + 0x60]
push dword [ebp + 0x34]
push edi
call fcn.00440266
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.00440266
push dword [ebp + 0x78]
push dword [ebp + 0x28]
push edi
call fcn.00440266
push dword [ebp + 0x7c]
push dword [ebp + 0x2c]
push edi
call fcn.00440266
mov eax, dword [ebp + 0x74]
add esp, 0x40
cmp word [eax], 0
je 0x473aad
mov esi, dword [sym.imp.USER32.DLL_GetAsyncKeyState]
push 1
call esi
xor ebx, ebx
mov bx, ax
push 0x10
shr ebx, 0xf
and ebx, 1
call esi
neg ax
push 0x11
sbb eax, eax
and eax, 4
or ebx, eax
call esi
neg ax
push 2
sbb eax, eax
and eax, 8
or ebx, eax
call esi
push dword [ebp + 0x74]
neg ax
sbb eax, eax
and eax, 0x10
or ebx, eax
movzx eax, bx
push eax
push edi
call fcn.00440266
add esp, 0xc
lea ecx, [ebp + 0x74]
call fcn.00437e1a
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
lea ecx, [ebp + 0x78]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x40]
jmp 0x473714
mov ecx, dword [edi + 4]
push 3
pop ebx
cmp ecx, ebx
je 0x473ae4
cmp ecx, 1
jne 0x473b17
mov eax, dword [ebp + 0x58]
cmp word [eax], 0
jne 0x473b17
cmp byte [ebp + 0x57], 0
jne 0x473b17
cmp ecx, ebx
mov eax, 0x1000000
jne 0x473b01
test dword [edi + 0x40], eax
jne 0x473b0b
cmp ecx, 1
jne 0x473b17
test dword [edi + 0x58], eax
je 0x473b17
push 0
push dword [ebp + 0x68]
call fcn.0041291e
pop ecx
pop ecx
push dword [ebp + 0x58]
push 0x4b10c0
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473b49
xor ebx, ebx
push ebx
push ebx
push dword [ebp + 0x60]
lea ecx, [edi + 0x34]
push dword [edi + 0x1c]
push dword [ebp + 0x4c]
call fcn.0048d8cd
cmp dword [ebp + 0x64], ebx
mov esi, eax
jmp 0x47380a
push dword [ebp + 0x58]
push 0x4b10b8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473b70
lea eax, [ebp + 0x64]
push eax
push 1
push dword [ebp + 0x60]
lea ecx, [edi + 0x34]
push dword [edi + 0x1c]
jmp 0x47343b
push dword [ebp + 0x58]
push 0x4b10b4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473bec
mov byte [0x4c0f4c], 1
mov eax, dword [edi + 0x1c]
xor ecx, ecx
cmp eax, ecx
jne 0x473b9b
cmp dword [ebp + 0x64], ecx
jmp 0x473d1c
mov edx, dword [ebp + 0x4c]
add edi, 0x34
mov dword [ebp - 0x34], edx
mov edx, dword [ebp + 0x60]
mov dword [ebp - 0x38], edi
mov edi, dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], edx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x64]
cmp eax, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], ecx
je 0x473bda
and dword [ebp + 0x64], 0
push eax
call edi
lea eax, [ebp - 0x40]
push eax
push esi
push 0x465
push dword [esi + 0x18]
jmp 0x4734ad
mov esi, dword [ebp + 0x58]
push esi
push 0x4b1098
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4b1090
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4b1080
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4b1078
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4b1070
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4b1068
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473ccd
push esi
push 0x4a7a1c
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473cc7
push esi
push 0x4b1060
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x473cc7
cmp dword [edi + 4], 9
jne 0x473ca7
lea eax, [ebp + 0x64]
push eax
push dword [ebp + 0x24]
mov ecx, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x4c]
push dword [ebp + 0x60]
call fcn.00463677
jmp 0x473cbc
mov eax, dword [edi]
lea ecx, [ebp + 0x64]
push ecx
push dword [ebp + 0x24]
mov ecx, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x60]
call dword [eax + 4]
cmp dword [ebp + 0x64], 0
mov esi, eax
jmp 0x47380a
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x68], eax
mov esi, dword [edi + 0x1c]
test esi, esi
je 0x473d18
mov eax, dword [ebp + 0x64]
test eax, eax
mov ebx, dword [esi + 0x18]
je 0x473ce9
and dword [ebp + 0x64], 0
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push edi
push esi
push dword [ebp + 0x24]
push dword [ebp + 0x58]
push dword [ebp + 0x68]
push ebx
push dword [ebp + 0x60]
call fcn.004381eb
add esp, 0x1c
cmp dword [ebp + 0x64], 0
je 0x473fea
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x473fea
cmp dword [ebp + 0x64], 0
je 0x473d27
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
lea ecx, [ebp + 0xc]
call fcn.00437e1a
lea ecx, [ebp + 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x24]
call fcn.00437e1a
lea ecx, [ebp + 0x14]
call fcn.00437e1a
lea ecx, [ebp + 0x1c]
call fcn.00437e1a
lea ecx, [ebp + 0x18]
call fcn.00437e1a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc
push esi
push 0x4b1058
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473ff1
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
jne 0x473863
lea ecx, [ebp + 0x50]
call fcn.0043dd7e
lea ecx, [ebp + 0x40]
call fcn.0043dd7e
lea ecx, [ebp + 0x4c]
call fcn.0043dd7e
lea ecx, [ebp + 0x5c]
call fcn.0043dd7e
lea ecx, [ebp + 0x44]
call fcn.0043dd7e
lea ecx, [ebp + 0x3c]
call fcn.0043dd7e
add dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
and dword [ebp + 0x28], 0
and dword [ebp + 0x2c], 0
cmp word [eax], bx
jne 0x473de1
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0046fb37
pop ecx
pop ecx
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
call fcn.0043d98b
test al, al
push 0x2c
pop esi
push 0x3b
pop ebx
je 0x473e28
and dword [ebp + 0x74], 0
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004051ad
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x34], eax
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004051ad
mov eax, dword [ebp + 0x74]
mov edi, dword [ebp + 0x60]
add esp, 0x10
mov dword [ebp + 0x38], eax
jmp 0x473e57
mov edi, dword [ebp + 0x60]
push esi
push ebx
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push ebx
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
lea eax, [ebp + 0x34]
push eax
call dword [sym.imp.USER32.DLL_GetCursorPos]
push esi
push ebx
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push ebx
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push ebx
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
push esi
push ebx
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
xor esi, esi
cmp dword [ebp + 0x28], esi
je 0x473eaf
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x28]
call dword [sym.imp.USER32.DLL_ScreenToClient]
mov eax, dword [ebp + 0x3c]
xor ebx, ebx
cmp word [eax], si
je 0x473ef1
mov eax, dword [ebp + 0x44]
cmp word [eax], si
je 0x473ef1
push 0xffffffffffffffff
push esi
push eax
mov ecx, edi
call fcn.00413152
cmp eax, esi
je 0x473ef1
mov eax, dword [eax]
cmp eax, esi
je 0x473edb
mov ecx, dword [eax - 8]
jmp 0x473edd
xor ecx, ecx
cmp ecx, 0x10
jb 0x473ef1
push dword [ebp + 0x38]
push dword [ebp + 0x34]
push eax
call dword [sym.imp.USER32.DLL_PtInRect]
mov ebx, eax
push dword [ebp + 0x3c]
push ebx
push edi
call fcn.00440266
push esi
lea eax, [ebp + 0x4c]
push eax
push 8
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x4c]
push edi
call fcn.0044983b
push dword [ebp + 0x50]
push dword [ebp + 0x34]
push edi
call fcn.00440266
push dword [ebp + 0x40]
push dword [ebp + 0x38]
push edi
call fcn.00440266
mov eax, dword [ebp + 0x5c]
add esp, 0x3c
cmp word [eax], si
je 0x473f83
mov esi, dword [sym.imp.USER32.DLL_GetAsyncKeyState]
push 1
call esi
xor ebx, ebx
mov bx, ax
push 0x10
shr ebx, 0xf
and ebx, 1
call esi
neg ax
push 0x11
sbb eax, eax
and eax, 4
or ebx, eax
call esi
neg ax
push 2
sbb eax, eax
and eax, 8
or ebx, eax
call esi
push dword [ebp + 0x5c]
neg ax
sbb eax, eax
and eax, 0x10
or ebx, eax
movzx eax, bx
push eax
push edi
call fcn.00440266
add esp, 0xc
xor esi, esi
lea ecx, [ebp + 0x3c]
call fcn.00437e1a
lea ecx, [ebp + 0x44]
call fcn.00437e1a
lea ecx, [ebp + 0x5c]
call fcn.00437e1a
lea ecx, [ebp + 0x4c]
call fcn.00437e1a
lea ecx, [ebp + 0x40]
call fcn.00437e1a
lea ecx, [ebp + 0x50]
call fcn.00437e1a
jmp 0x473d2c
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
call fcn.0043d973
test al, al
je 0x473fea
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
test eax, eax
pop ecx
pop ecx
jle 0x473fea
push dword [ebp + 0x7c]
push dword [ebp + 0x74]
call dword [sym.imp.USER32.DLL_SetCursorPos]
xor esi, esi
jmp 0x473d2c
push esi
push 0x4b104c
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47401d
push dword [ebp + 0x60]
push dword [ebp + 0x68]
call fcn.0048a276
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setl cl
mov esi, ecx
jmp 0x473d2c
push esi
push 0x4b1040
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x474135
mov byte [ebp + 0x44], 0
xor esi, esi
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x7c], esi
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x2c], 0xa
call fcn.0043dd7e
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3a
jne 0x4740cf
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [ebp + 0x68]
pop ecx
mov cx, word [eax]
cmp cx, si
mov edx, eax
je 0x4740a2
push 0x2c
pop esi
cmp cx, si
je 0x4740a2
cmp cx, 0x3b
je 0x4740a2
cmp cx, 0x3a
je 0x4740a2
inc eax
inc eax
mov dword [ebp + 0x68], eax
mov cx, word [eax]
test cx, cx
jne 0x474084
sub eax, edx
sar eax, 1
push eax
push edx
lea ecx, [ebp + 0x78]
call fcn.0043dea2
mov eax, dword [ebp + 0x68]
xor esi, esi
cmp word [eax], si
je 0x4740be
add dword [ebp + 0x68], 2
mov ecx, dword [ebp + 0x60]
push 1
lea eax, [ebp + 0x78]
push eax
call fcn.00402d33
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x2a
jne 0x474620
push 2
pop edi
add eax, edi
mov dword [ebp + 0x68], eax
cmp word [eax], 0x3f
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x7c], esi
jne 0x474121
add eax, edi
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
pop ecx
pop ecx
jne 0x474121
add eax, edi
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov eax, dword [ebp + 0x68]
pop ecx
pop ecx
cmp word [eax], 0x2a
jne 0x474593
add eax, edi
mov dword [ebp + 0x50], eax
jmp 0x4745be
push esi
push 0x4b1034
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47414f
mov byte [ebp + 0x44], 1
jmp 0x474036
push esi
push 0x4b1028
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x47418d
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x68]
xor esi, esi
push eax
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], esi
call fcn.0046fb37
push dword [ebp + 0x68]
push dword [ebp + 0x34]
push 0x4c0fb8
call fcn.00433d18
add esp, 0x14
jmp 0x473d2c
push esi
push 0x4b1020
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x474257
mov ecx, dword [ebp + 0x68]
xor eax, eax
xor esi, esi
cmp word [ecx], 0x3f
sete al
mov edi, eax
test di, di
je 0x4741bb
add dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
jne 0x4741c9
add dword [ebp + 0x68], 2
mov esi, ebx
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
cmp dword [ebp + 0x74], 0
pop ecx
pop ecx
jle 0x473d27
mov edx, dword [ebp + 0x68]
xor ecx, ecx
mov cx, word [edx]
mov eax, ecx
call fcn.0043d973
test al, al
je 0x474203
cmp cx, bx
je 0x474203
inc edx
inc edx
mov dword [ebp + 0x68], edx
test si, si
je 0x474215
cmp word [edx], bx
je 0x474215
dec edx
dec edx
mov dword [ebp + 0x68], edx
mov word [edx], bx
test di, di
je 0x474226
sub dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
mov word [eax], 0x3f
mov eax, dword [ebp + 0x60]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x474238
mov eax, dword [eax + 0x15c]
jmp 0x47423a
xor eax, eax
push eax
xor esi, esi
push esi
push dword [ebp + 0x60]
push dword [ebp + 0x60]
push dword [ebp + 0x68]
push dword [ebp + 0x74]
call fcn.0044f8c9
add esp, 0x18
jmp 0x473d2c
push esi
push 0x4b1018
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x474322
lea ecx, [ebp + 0x50]
call fcn.0043dd7e
xor esi, esi
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x38], esi
call fcn.0043dd7e
push 0x3a
push 0x3b
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004408fe
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], si
je 0x4742a1
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
push dword [ebp + 0x68]
call fcn.0041161a
pop ecx
pop ecx
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x68], eax
call fcn.0043dd7e
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x7c]
push eax
push dword [ebp + 0x68]
mov dword [ebp + 0x74], esi
call fcn.00485e2a
mov eax, dword [ebp + 0x74]
add esp, 0xc
cmp eax, esi
je 0x4742fc
cmp word [eax], si
je 0x4742fc
mov word [eax - 2], si
push esi
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x74]
push dword [ebp + 0x7c]
call fcn.004061cc
add esp, 0x14
push dword [ebp + 0x50]
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x78]
call fcn.0043d658
lea ecx, [ebp + 0x7c]
call fcn.00437e1a
lea ecx, [ebp + 0x78]
call fcn.00437e1a
lea ecx, [ebp + 0x50]
jmp 0x4746c2
push esi
push 0x4b100c
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x4743ac
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [eax]
mov si, word [eax]
cmp si, 0x3f
pop ecx
jne 0x47434c
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x474371
cmp ax, 0x3a
jne 0x474375
add dword [ebp + 0x68], 2
cmp si, 0x3f
jne 0x473d27
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
push 0x3a
push 0x3b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004408fe
add esp, 0x10
push dword [ebp + 0x7c]
push dword [ebp + 0x74]
call dword [sym.imp.USER32.DLL_IsWindow]
jmp 0x47443c
push esi
push 0x4b1004
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x474486
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [eax]
mov si, word [eax]
cmp si, 0x3f
pop ecx
jne 0x4743da
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x4743ff
cmp ax, 0x3a
jne 0x474403
add dword [ebp + 0x68], 2
xor edi, edi
cmp dword [ebp + 0x74], edi
jle 0x473d27
cmp si, 0x3f
jne 0x474450
lea ecx, [ebp + 0x7c]
call fcn.0043dd7e
push 0x3a
push 0x3b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004408fe
add esp, 0x10
push dword [ebp + 0x7c]
push dword [ebp + 0x74]
call dword [sym.imp.USER32.DLL_IsWindowEnabled]
push eax
push dword [ebp + 0x60]
call fcn.0044023a
add esp, 0xc
lea ecx, [ebp + 0x7c]
jmp 0x4746c2
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x7c], 0xfffffc18
call fcn.0044957c
cmp dword [ebp + 0x7c], edi
pop ecx
pop ecx
jl 0x473fea
xor eax, eax
cmp dword [ebp + 0x7c], edi
setne al
push eax
push dword [ebp + 0x74]
call dword [sym.imp.USER32.DLL_EnableWindow]
jmp 0x473fea
lea eax, [esi + 2]
call fcn.0043e365
test al, al
je 0x4744f5
lea eax, [ebp + 0x68]
push eax
call fcn.00437e65
mov eax, dword [eax]
mov si, word [eax]
cmp si, 0x3f
pop ecx
jne 0x4744ab
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x4744d0
cmp ax, 0x3a
jne 0x4744d4
add dword [ebp + 0x68], 2
cmp dword [ebp + 0x74], 0
jle 0x473d27
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x74]
push dword [ebp + 0x60]
call fcn.00450185
add esp, 0x10
jmp 0x473fea
push esi
push 0x4b0ffc
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x474535
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004051ad
cmp dword [ebp + 0x74], 0
pop ecx
pop ecx
jle 0x473d27
push dword [ebp + 0x68]
push dword [ebp + 0x74]
call fcn.00450313
pop ecx
pop ecx
jmp 0x473fea
push esi
push 0x4b0ff4
call fcn.004391ba
movzx eax, al
test eax, eax
pop ecx
pop ecx
mov dword [ebp + 0x38], eax
jne 0x474561
push esi
push 0x4b0fe8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x473fea
mov eax, dword [ebp + 0x68]
and dword [ebp + 0x78], 0
push 7
push eax
push 0x4b0fe0
mov dword [ebp + 0x7c], eax
call fcn.0043917b
add esp, 0xc
test al, al
je 0x474751
add dword [ebp + 0x68], 0xe
mov dword [ebp + 0x5c], 0xfffffffc
jmp 0x4747b5
mov dword [ebp + 0x7c], eax
jmp 0x4745c1
cmp cx, 0x2a
jne 0x4745b0
cmp dword [ebp + 0x7c], esi
jne 0x4745b0
mov word [eax], si
mov eax, dword [ebp + 0x68]
add eax, edi
mov dword [ebp + 0x7c], eax
jmp 0x4745be
cmp cx, 0x3b
je 0x4745cb
cmp cx, 0x3a
je 0x4745cb
add eax, edi
mov dword [ebp + 0x68], eax
mov cx, word [eax]
cmp cx, si
jne 0x474598
jmp 0x4745d8
mov word [eax], si
add dword [ebp + 0x68], edi
mov dword [ebp + 0x5c], 1
mov ebx, dword [sym.imp.KERNEL32.DLL_GetTickCount]
call ebx
push dword [ebp + 0x7c]
mov esi, dword [sym.imp.USER32.DLL_FindWindowW]
push dword [ebp + 0x50]
mov dword [ebp + 0x4c], eax
call esi
mov edi, eax
test edi, edi
jne 0x474636
call ebx
sub eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x38]
jae 0x474632
mov ecx, dword [ebp + 0x60]
push 0
push 0
push dword [ebp + 0x2c]
call fcn.00413b53
push dword [ebp + 0x7c]
push dword [ebp + 0x50]
call esi
mov edi, eax
test edi, edi
je 0x4745f7
jmp 0x474632
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
mov edi, dword [ebp + 0x7c]
pop ecx
pop ecx
test edi, edi
je 0x4746b2
xor ebx, ebx
cmp dword [ebp + 0x5c], ebx
jne 0x474653
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
je 0x47464f
cmp ax, 0x3a
jne 0x474691
add dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
xor esi, esi
cmp ax, 0x3b
je 0x4746bf
cmp ax, 0x3a
je 0x4746bf
cmp ax, bx
je 0x4746bf
cmp ax, 0x23
jne 0x47467b
add dword [ebp + 0x68], 2
mov esi, 0x5000
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0044957c
test eax, eax
pop ecx
pop ecx
jle 0x474691
add dword [ebp + 0x74], esi
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x44]
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x68]
push dword [ebp + 0x60]
call fcn.0045191d
add esp, 0x18
test eax, eax
je 0x4746cc
lea ecx, [ebp + 0x78]
call fcn.00437e1a
jmp 0x473d27
lea ecx, [ebp + 0x78]
call fcn.00437e1a
jmp 0x473fea
cmp byte [ebp + 0x44], 0
mov dword [ebp + 0x58], ebx
jne 0x4746e7
push dword [ebp + 0x3c]
push dword [ebp + 0x48]
push dword [ebp + 0x74]
push edi
call dword [sym.imp.USER32.DLL_PostMessageW]
jmp 0x474717
cmp dword [ebp + 0x40], ebx
je 0x474707
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x40]
push 2
push dword [ebp + 0x3c]
push dword [ebp + 0x48]
push dword [ebp + 0x74]
push edi
call dword [sym.imp.USER32.DLL_SendMessageTimeoutW]
jmp 0x47471a
push dword [ebp + 0x3c]
push dword [ebp + 0x48]
push dword [ebp + 0x74]
push edi
call dword [sym.imp.USER32.DLL_SendMessageW]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x4746bf
push dword [ebp + 0x58]
lea eax, [ebp - 0xa4]
push 0x4ae3b0
push eax
call dword [sym.imp.USER32.DLL_wsprintfW]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
lea eax, [ebp - 0xa4]
push eax
push dword [ebp + 0x78]
call fcn.0043d658
jmp 0x4746bf
push 7
push dword [ebp + 0x68]
push 0x4b0fd8
call fcn.0043917b
add esp, 0xc
test al, al
je 0x474774
add dword [ebp + 0x68], 0xe
mov dword [ebp + 0x5c], 0xffffffc0
jmp 0x4747b5
push 0xb
push dword [ebp + 0x68]
push 0x4b0fcc
call fcn.0043917b
add esp, 0xc
test al, al
je 0x474790
add dword [ebp + 0x68], 0x16
jmp 0x4747ae
push 5
push dword [ebp + 0x68]
push 0x4b0fc4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x473d27
add dword [ebp + 0x68], 0xa
mov dword [ebp + 0x5c], 0xffffffe0
mov eax, dword [ebp + 0x68]
push 0x2c
pop esi
push esi
mov dword [ebp + 0x7c], eax
lea eax, [ebp + 0x68]
push 0x3b
push eax
call fcn.00438346
mov eax, dword [ebp + 0x68]
xor ebx, ebx
add esp, 0xc
cmp word [eax], bx
je 0x4747de
mov word [eax], bx
add dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x7c]
mov ax, word [eax]
cmp ax, 0x2a
jne 0x474802
add dword [ebp + 0x7c], 2
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0043a784
cmp dword [ebp + 0x78], ebx
pop ecx
pop ecx
jmp 0x47480e
cmp dword [ebp + 0x5c], ebx
je 0x473d27
cmp ax, bx
je 0x473d27
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x74], ebx
call fcn.0043dd7e
cmp dword [ebp + 0x78], ebx
mov dword [ebp + 0x50], ebx
jne 0x4748b5
mov eax, dword [ebp + 0x7c]
mov ax, word [eax]
cmp ax, 0x2e
jne 0x474842
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4b0fbc
jmp 0x474855
cmp ax, 0x23
jne 0x47484c
add dword [ebp + 0x7c], 2
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4b0fb4
lea ecx, [ebp + 0x74]
call fcn.0043de39
push 0x4b0f90
lea ecx, [ebp + 0x74]
call fcn.0043ddea
push dword [ebp + 0x7c]
lea ecx, [ebp + 0x74]
call fcn.0043ddea
push dword [ebp + 0x74]
push ebx
push 0x100002
call dword [sym.imp.KERNEL32.DLL_OpenEventW]
cmp eax, ebx
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x78], eax
jne 0x4748b5
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x47489d
xor esi, esi
inc esi
lea ecx, [ebp + 0x50]
call fcn.00402b5a
lea ecx, [ebp + 0x48]
call fcn.00437e1a
lea ecx, [ebp + 0x74]
jmp 0x473fae
mov edi, dword [ebp + 0x60]
push esi
push 0x3b
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, edi
call fcn.00433707
cmp dword [ebp + 0x38], ebx
je 0x4748e6
push dword [ebp + 0x48]
push dword [ebp + 0x68]
push dword [ebp + 0x78]
push dword [ebp + 0x5c]
push edi
call fcn.004347b9
add esp, 0x14
jmp 0x4748f8
push dword [ebp + 0x68]
push dword [ebp + 0x78]
push dword [ebp + 0x5c]
push edi
call fcn.004346af
add esp, 0x10
mov esi, eax
mov eax, dword [ebp + 0x48]
cmp word [eax], bx
je 0x47489d
push eax
push esi
push edi
call fcn.00446569
add esp, 0xc
xor esi, esi
jmp 0x47489d