Function at 0x495663
Capabilities:
Hide graphical window

Disassembly:
push ebp
lea ebp, [esp - 0x30]
sub esp, 0x178
push ebx
push esi
push edi
push dword [ebp + 0x54]
mov eax, 0x4c6a64
push dword [ebp + 0x50]
mov esi, ecx
push dword [ebp + 0x4c]
mov dword [ebp + 0x2c], esi
push dword [ebp + 0x48]
push eax
push eax
mov eax, dword [ebp + 0x44]
push dword [eax]
push dword [ebp + 0x38]
push 0x10
call fcn.0043a842
push 0x4e3d84
mov dword [esi], 0x4cf650
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 0x8c]
mov ecx, dword [ebp + 0x78]
and dword [ebp + 0x10], 0
shl eax, 2
not eax
and eax, 0x10000
test ecx, ecx
mov dword [ebp + 0x28], eax
mov dword [ebp + 0xc], 9
je 0x4956e0
mov ax, word [ecx]
mov word [ebp + 0x10], ax
mov ax, word [ecx + 2]
mov word [ebp + 0xc], ax
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov ebx, dword [ebp + 0x6c]
add edx, eax
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x2c]
add eax, ecx
mov dword [ebp + 8], eax
mov dword [ebp + 4], edx
mov edx, dword [ebp + 0x68]
mov eax, edx
mov edi, 0x800
and eax, edi
mov dword [ebp + 0x18], eax
mov eax, edx
and eax, 0xfffff7ff
mov dword [esi + 0x44], eax
mov al, dl
and al, 0x10
push ebx
push edx
mov dword [ebp], ecx
mov dword [ebp + 0x20], ebx
mov byte [ebp + 0x53], al
mov dword [ebp + 0x48], 0x10000000
call fcn.004402f5
test al, al
pop ecx
pop ecx
je 0x49573d
mov dword [ebp + 0x48], 0x18000000
mov eax, edx
and eax, 0x40
xor ecx, ecx
or eax, ecx
je 0x49574c
or byte [ebp + 0x4a], 0x80
mov eax, edx
and eax, 0x80000000
xor ecx, ecx
or eax, ebx
je 0x49575b
mov ecx, edi
mov eax, edx
and eax, 0x80000
xor edi, edi
or eax, edi
jne 0x49576c
or dword [ebp + 0x48], 8
or dword [ebp + 0x48], 1
mov eax, edx
and eax, 0x2000
xor edi, edi
or eax, edi
je 0x495781
or byte [ebp + 0x49], 0x40
mov eax, edx
and eax, 0x1000
xor edi, edi
or eax, edi
je 0x495792
or byte [ebp + 0x49], 2
mov eax, edx
and eax, 0x2090000
xor edx, edx
or eax, edx
je 0x4957a3
or dword [ebp + 0x48], 4
test ecx, ecx
jle 0x4957aa
or dword [ebp + 0x48], ecx
push 0x290
call fcn.004b4768
test eax, eax
pop ecx
je 0x4957c9
push esi
lea ecx, [esi + 0x34]
push ecx
mov ecx, eax
call fcn.004adbba
mov ebx, eax
jmp 0x4957cb
xor ebx, ebx
mov eax, dword [ebp + 0x74]
mov dword [esi + 0x1c], ebx
mov dword [eax], esi
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x49589a
mov cx, word [eax]
cmp cx, 0x2a
mov dword [ebp + 0x38], eax
je 0x4957f6
cmp cx, 0x2d
je 0x4957f6
mov byte [ebp + 0x57], 0
jmp 0x495800
add eax, 2
mov byte [ebp + 0x57], 1
mov dword [ebp + 0x38], eax
lea esi, [ebx + 0x170]
lea eax, [ebp + 0x38]
push esi
push eax
call fcn.0045aa22
cmp byte [ebp + 0x57], 0
pop ecx
pop ecx
je 0x49581e
fld qword [esi]
fchs
fstp qword [esi]
mov eax, dword [ebp + 0x38]
mov ax, word [eax]
cmp ax, 0x2a
je 0x495836
cmp ax, 0x2d
je 0x495836
mov byte [ebp + 0x57], 0
jmp 0x49583e
add dword [ebp + 0x38], 2
mov byte [ebp + 0x57], 1
lea esi, [ebx + 0x178]
lea eax, [ebp + 0x38]
push esi
push eax
call fcn.0045aa22
cmp byte [ebp + 0x57], 0
pop ecx
pop ecx
je 0x49585c
fld qword [esi]
fchs
fstp qword [esi]
mov eax, dword [ebp + 0x38]
mov ax, word [eax]
cmp ax, 0x2a
je 0x495874
cmp ax, 0x2d
je 0x495874
mov byte [ebp + 0x57], 0
jmp 0x49587c
add dword [ebp + 0x38], 2
mov byte [ebp + 0x57], 1
lea esi, [ebx + 0x180]
lea eax, [ebp + 0x38]
push esi
push eax
call fcn.0045aa22
cmp byte [ebp + 0x57], 0
pop ecx
pop ecx
je 0x49589a
fld qword [esi]
fchs
fstp qword [esi]
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x4958c4
cmp word [eax + 4], 0
je 0x4958b2
mov cx, word [eax]
mov word [ebx + 0x18a], cx
cmp word [eax + 6], 0
je 0x4958c4
mov ax, word [eax + 2]
mov word [ebx + 0x188], ax
push dword [ebp + 0x40]
mov eax, dword [ebp + 0x3c]
push dword [eax + 0x18]
mov eax, dword [ebp + 0x48]
or eax, dword [ebp + 0x28]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
or eax, 0x40000000
push eax
mov ecx, ebx
movsd dword es:[edi], dword [esi]
call fcn.004a9bc6
mov ecx, ebx
call fcn.004401a4
push eax
lea ecx, [ebx + 0x90]
call fcn.004a9502
mov eax, dword [ebp + 0x68]
and eax, 0x4800
xor ecx, ecx
cmp eax, 0x4000
jne 0x495928
test ecx, ecx
jne 0x495928
push ecx
push dword [ebx + 0xa8]
call dword [sym.imp.USER32.dll_EnableWindow]
or byte [ebx + 0x289], 1
mov eax, dword [ebp + 0x68]
and eax, 0x4000
xor ecx, ecx
or eax, ecx
je 0x49593d
or byte [ebx + 0x288], 1
lea ecx, [ebp + 0x7c]
call fcn.0044658e
mov edi, dword [ebp + 0x60]
cmp word [edi], 0x3d
jne 0x49597e
inc edi
inc edi
push 0x3a
lea eax, [ebp + 0x60]
mov dword [ebp + 0x60], edi
mov esi, edi
call fcn.00414c4e
mov edi, dword [ebp + 0x60]
mov eax, edi
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x7c]
call fcn.004466b2
cmp word [edi], 0
je 0x49597e
inc edi
inc edi
mov dword [ebp + 0x60], edi
mov ecx, dword [ebp + 0x3c]
xor esi, esi
call fcn.004a023d
fld qword [0x4cd0b8]
and byte [ebp + 0x69], 0xf7
fstp qword [ebp - 0x24]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x6c], eax
xor eax, eax
mov ax, word [edi]
cmp ax, si
mov dword [ebp + 0x54], eax
je 0x4959b5
cmp word [edi + 2], 0x3a
jne 0x4959b5
mov dword [ebp + 0x54], esi
cmp ax, 0x2a
jne 0x4959be
mov word [edi], si
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
pop ecx
pop ecx
jne 0x4959db
inc eax
inc eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x4c], eax
push 0x3a
lea eax, [ebp + 0x4c]
call fcn.00414c4e
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
je 0x4959f8
mov word [eax], si
add dword [ebp + 0x4c], 2
mov eax, dword [ebp + 0x4c]
fldz
movzx eax, word [eax]
fstp qword [ebp + 0x24]
or dword [ebp + 0x48], 0xffffffff
fldz
fstp qword [ebp + 4]
xor edi, edi
cmp ax, 0x2d
fld qword [0x4cd0b8]
fst qword [ebp - 0x1c]
mov dword [ebp + 0x38], 0x80000000
fst qword [ebp - 0x34]
fst qword [ebp - 0x3c]
fstp qword [ebp - 0x14]
je 0x495a33
cmp ax, 0x2a
jne 0x495a39
add dword [ebp + 0x4c], 2
mov edi, eax
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
cmp di, 0x2d
pop ecx
pop ecx
jne 0x495a55
fld qword [ebp + 0x24]
fchs
jmp 0x495a64
cmp di, 0x2a
jne 0x495a67
fld qword [ebp + 0x24]
fadd qword [0x4d2d00]
fstp qword [ebp + 0x24]
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
je 0x495b28
push 2
pop edi
add dword [ebp + 0x4c], edi
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00448b9d
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449a99
mov eax, dword [ebp + 0x4c]
cmp word [eax], si
pop ecx
pop ecx
je 0x495b28
add dword [ebp + 0x4c], edi
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449b3f
pop ecx
pop ecx
mov eax, dword [ebp + 0x3c]
push dword [eax + 0x18]
lea ecx, [ebp - 0x2c]
call fcn.00401034
push dword [ebp - 0x2c]
call dword [sym.imp.GDI32.dll_GetBkColor]
push eax
mov ecx, ebx
call fcn.0044020c
lea ecx, [ebp - 0x2c]
call fcn.0040104d
fld qword [ebp - 0x24]
fcom qword [0x4c9b78]
mov eax, dword [ebp + 0x78]
mov esi, dword [sym.imp.GDI32.dll_GetObjectW]
mov dword [ebx + 0x18c], eax
fnstsw ax
test ah, 0x41
je 0x495b82
mov eax, dword [ebp + 0x60]
cmp word [eax], 0
jne 0x495b82
cmp word [ebp + 0x54], 0
je 0x495c39
and dword [ebp - 0xec], 0
fstp qword [ebp - 0x2c]
push 0x16
pop ecx
xor eax, eax
lea edi, [ebp - 0xe8]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xec]
push eax
push 0x5c
push dword [ebp + 0x78]
call esi
fld qword [ebp - 0x3c]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495bcc
fld qword [ebp - 0x3c]
push ecx
push ecx
fstp qword [esp]
call fcn.00445b86
pop ecx
pop ecx
mov dword [ebp - 0xec], eax
fld qword [ebp - 0x14]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495bf1
fld qword [ebp - 0x14]
push ecx
push ecx
fstp qword [esp]
call fcn.00445b86
pop ecx
pop ecx
mov dword [ebp - 0xe8], eax
push dword [ebp + 0x60]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.0047e3ba
add esp, 0xc
test eax, eax
mov dword [ebx + 0x48], eax
je 0x495c11
mov dword [ebp + 0x78], eax
push dword [ebp + 0x60]
mov eax, dword [ebp + 0x78]
lea ecx, [ebp - 0x24]
push ecx
push eax
mov dword [ebx + 0x18c], eax
call fcn.0048a731
fld qword [ebp - 0x24]
add esp, 0xc
mov dword [ebx + 0x190], eax
mov dword [ebx + 0x18c], eax
fcom qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495c4e
fstp qword [ebx + 0x270]
jmp 0x495c50
fstp st(0)
fld qword [ebp - 0x14]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495c69
fld qword [ebp - 0x14]
fstp qword [ebx + 0x278]
push 1
push dword [ebx + 0x18]
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
fld qword [0x4c9b78]
fld qword [ebp + 0x24]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x495c94
fld qword [ebp + 0x24]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.004aa40d
cmp dword [ebx + 0x48], 0
je 0x495ca9
mov eax, dword [ebx]
push 1
push dword [ebp + 0x78]
mov ecx, ebx
call dword [eax + 0x84]
mov eax, dword [ebp + 0x38]
test eax, eax
jl 0x495cb5
movzx edx, al
jmp 0x495cb8
or edx, 0xffffffff
test eax, eax
jl 0x495cc1
movzx ecx, ah
jmp 0x495cc4
or ecx, 0xffffffff
test eax, eax
jl 0x495cd0
sar eax, 0x10
movzx eax, al
jmp 0x495cd3
or eax, 0xffffffff
fld qword [ebp + 4]
push ecx
fstp dword [esp]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004aa3d6
and dword [ebp - 0x148], 0
push 0x16
pop ecx
xor eax, eax
lea edi, [ebp - 0x144]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x148]
push eax
push 0x5c
push dword [ebp + 0x78]
call esi
fld qword [0x4d20d0]
fstp qword [ebp + 4]
fld qword [ebp - 0x1c]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495d34
fld qword [ebp - 0x1c]
push ecx
push ecx
fstp qword [esp]
call fcn.00445b86
pop ecx
pop ecx
mov dword [ebp - 0x148], eax
fld qword [ebp - 0x34]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
jne 0x495d59
fld qword [ebp - 0x34]
push ecx
push ecx
fstp qword [esp]
call fcn.00445b86
pop ecx
pop ecx
mov dword [ebp - 0x144], eax
fld qword [ebp - 0x1c]
mov eax, dword [ebp + 0x78]
fcomp qword [0x4c9b78]
mov ecx, dword [ebp + 0x70]
mov dword [ebx + 0x138], eax
fnstsw ax
test ah, 0x41
je 0x495d8b
fld qword [ebp - 0x34]
fcomp qword [0x4c9b78]
fnstsw ax
test ah, 0x41
je 0x495d8b
cmp word [ecx], 0
je 0x495dab
push ecx
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.0047e3ba
add esp, 0xc
mov dword [ebx + 0x13c], eax
mov dword [ebx + 0x138], eax
mov ecx, dword [ebp + 0x68]
mov eax, ecx
and eax, 0x80
xor edx, edx
or eax, edx
je 0x495dc2
or byte [ebx + 0x288], 4
mov eax, ecx
and eax, 0x100
xor edx, edx
or eax, edx
je 0x495dd6
or byte [ebx + 0x288], 8
mov eax, ecx
and eax, 0x3800200
xor edx, edx
xor esi, esi
or eax, edx
jne 0x495de6
inc esi
mov eax, ecx
mov edi, 0x400
and eax, edi
xor edx, edx
or eax, edx
je 0x495df8
or esi, 4
mov eax, ecx
and eax, 0x4000
xor edx, edx
or eax, edx
je 0x495e0c
or byte [ebx + 0x288], 1
cmp dword [ebp + 0x18], 0
je 0x495e15
or esi, 0x10
mov eax, ecx
and eax, 0x20000
xor ecx, ecx
or eax, ecx
je 0x495e28
or esi, 0x8000
mov ecx, ebx
call fcn.004401f9
or esi, eax
mov eax, dword [ebp + 0x68]
and eax, 0x600000
xor ecx, ecx
or eax, ecx
je 0x495e42
or esi, 4
push esi
mov ecx, ebx
call fcn.004a9c32
mov eax, dword [ebp + 0x68]
and eax, 0x10000
xor ecx, ecx
or eax, ecx
je 0x495e62
mov eax, dword [ebp + 0x6c]
and byte [ebp + 0x6a], 0xf7
mov dword [ebp + 0x6c], eax
mov edx, dword [ebp + 0x68]
mov eax, edx
and eax, 0x40000
xor ecx, ecx
or eax, ecx
je 0x495e79
or byte [ebx + 0x288], 2
mov eax, edx
and eax, 0x80000
xor ecx, ecx
or eax, ecx
je 0x495e8d
or byte [ebx + 0x288], 0x20
mov eax, edx
and eax, 0x100000
xor ecx, ecx
or eax, ecx
je 0x495ea1
or byte [ebx + 0x288], 0x40
mov eax, edx
and eax, 0x200000
xor ecx, ecx
or eax, ecx
je 0x495eb5
or word [ebx + 0x288], di
mov eax, edx
and eax, 0x400000
xor ecx, ecx
or eax, ecx
je 0x495ec9
or byte [ebx + 0x289], 0xc
mov eax, edx
and eax, 0x800000
xor ecx, ecx
or eax, ecx
je 0x495edd
or byte [ebx + 0x289], 0x18
mov eax, edx
and eax, 0x1000000
xor ecx, ecx
or eax, ecx
je 0x495ef1
or byte [ebx + 0x289], 0x28
mov al, byte [ebp + 0x20]
and al, 1
mov byte [ebp + 0x63], al
je 0x495f02
or byte [ebx + 0x289], 2
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov esi, 0x80000000
mov dword [ebp], esi
lea edi, [ebp + 4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.004495d7
cmp dword [ebp - 0xc], 0
pop ecx
pop ecx
jl 0x495f42
push dword [ebp - 0xc]
mov ecx, ebx
call fcn.0044020c
mov eax, dword [ebp - 8]
test eax, eax
jl 0x495f57
push eax
mov ecx, ebx
mov dword [ebx + 0x25c], eax
call fcn.00440223
mov eax, dword [ebp - 4]
test eax, eax
jl 0x495f6c
push eax
mov ecx, ebx
mov dword [ebx + 0x258], eax
call fcn.004aa483
mov eax, dword [ebp]
cmp eax, esi
jne 0x495fd5
mov eax, dword [ebp + 0x68]
and eax, 0x50000
xor ecx, ecx
or eax, ecx
jne 0x495fc9
push 0x23
pop edi
push edi
lea eax, [ebp + 0x78]
call fcn.00414c4e
mov eax, dword [ebp + 0x78]
cmp word [eax], di
pop ecx
jne 0x495fa4
add dword [ebp + 0x78], 2
push edi
lea eax, [ebp + 0x78]
call fcn.00414c4e
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], di
jne 0x495fba
add dword [ebp + 0x78], 2
push edi
lea eax, [ebp + 0x78]
call fcn.00414c4e
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], di
jne 0x495fdb
cmp word [eax + 2], 0x2a
jne 0x495fdb
push 0xd
call dword [sym.imp.USER32.dll_GetSysColor]
cmp eax, esi
je 0x495fdb
mov dword [ebx + 0x260], eax
xor ecx, ecx
cmp dword [ebx + 0x260], ecx
jl 0x495ff8
mov eax, dword [ebp + 0x68]
and eax, 0x10000
or eax, ecx
je 0x495ff8
or byte [ebx + 0x288], 0x10
push 7
pop edx
xor eax, eax
mov ecx, edx
lea edi, [ebp - 0x58]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
xor ecx, ecx
push 0x30
pop edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], edx
mov dword [ebp + 0x44], eax
cmp word [eax], cx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x18], ecx
mov ecx, dword [ebp + 0x3c]
mov esi, dword [ecx + 0xf8]
sete byte [ebp + 0x7b]
cmp dword [ebx + 0x260], 0
jl 0x496045
test byte [ebx + 0x288], 0x10
jne 0x49604e
test byte [ebx + 0x288], 0x20
je 0x496058
or byte [ebx + 0x288], 0x80
mov eax, dword [ebp + 0x44]
and dword [ebp + 0x3c], 0
jmp 0x496110
push dword [ebp + 0xc]
and dword [ebp + 0x74], 0
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp + 0x64], 0x80000000
mov dword [ebp + 0x54], 2
mov byte [ebp + 0x38], 0
call fcn.004954f6
add esp, 0x1c
test eax, eax
jge 0x4960a4
cmp dword [ebp + 0x64], 0
jl 0x4960b2
push dword [ebp + 0x64]
mov ecx, ebx
push eax
push dword [ebp + 0x3c]
call fcn.004ada5e
mov eax, dword [ebp - 0x54]
cdq
add dword [ebp + 0x1c], eax
adc dword [ebp + 0x20], edx
test esi, esi
jle 0x4960e1
push dword [ebp + 0x20]
mov eax, esi
push dword [ebp + 0x1c]
cdq
push edx
push eax
call fcn.004b4630
push 0
push 0x60
push edx
push eax
call fcn.004b4a80
sub eax, dword [ebp + 0x14]
mov dword [ebp - 0x54], eax
push dword [ebp + 0x54]
lea eax, [ebp - 0x5c]
push dword [ebp + 0x38]
mov ecx, ebx
push eax
push dword [ebp + 0x3c]
call fcn.004ab89a
mov eax, dword [ebp - 0x54]
cdq
add dword [ebp + 0x14], eax
lea ecx, [ebp + 0x74]
mov dword [ebp - 0x58], edi
adc dword [ebp + 0x18], edx
call fcn.0043fe25
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x44]
cmp word [eax], 0
jne 0x496061
cmp dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
mov dword [eax + 0x40], ecx
jle 0x496135
push 0
push dword [ebp + 0x48]
mov ecx, ebx
call fcn.004aa439
mov esi, dword [ebp + 0x5c]
xor eax, eax
push 0xc
pop ecx
lea edi, [ebp - 0x8c]
rep stosd dword es:[edi], eax
and dword [ebp - 0x88], eax
xor ecx, ecx
inc ecx
cmp esi, ecx
mov eax, 0x4c6a64
mov dword [ebp - 0x8c], 0x7fffffff
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x64], esi
jne 0x4962d2
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x90]
mov esi, 0x4c78c2
xor edi, edi
push eax
mov ecx, ebx
mov dword [ebp + 0x64], esi
mov dword [ebp - 0x88], edi
call fcn.004a9c49
push edi
push edi
push 0x1008
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4962d2
cmp word [ebp + 0x10], 0
mov dword [ebp + 0x44], esi
lea eax, [ebp + 0x64]
jne 0x4961cb
call fcn.00414c6e
mov esi, dword [ebp + 0x64]
cmp word [esi], 0xd
mov eax, esi
jne 0x4961d9
inc esi
inc esi
mov dword [ebp + 0x64], esi
jmp 0x4961d9
push dword [ebp + 0x10]
call fcn.00414c4e
mov esi, dword [ebp + 0x64]
pop ecx
mov eax, esi
cmp word [esi], 0
je 0x4961e4
inc esi
inc esi
mov dword [ebp + 0x64], esi
xor ecx, ecx
cmp word [eax], cx
je 0x4961ee
mov word [eax], cx
mov eax, dword [ebp + 0x44]
cmp word [eax], cx
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x3c], ecx
je 0x4962d2
cmp byte [ebp + 0x7b], 0
mov edi, dword [ebp + 0x2c]
jne 0x496215
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x40]
jge 0x4962d2
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x54], eax
lea eax, [ebp + 0x44]
je 0x49622c
push eax
call fcn.00405c44
jmp 0x496234
push dword [ebp + 0xc]
call fcn.00414c4e
pop ecx
mov ecx, dword [ebp + 0x44]
cmp word [ecx], 0
je 0x49624a
and word [ecx], 0
mov ecx, dword [ebp + 0x44]
inc ecx
inc ecx
mov dword [ebp + 0x44], ecx
cmp byte [ebp + 0x63], 0
je 0x496267
test ecx, ecx
je 0x496267
jmp 0x49625b
inc ecx
inc ecx
mov dword [ebp + 0x44], ecx
mov ax, word [ecx]
call fcn.0043fe38
test al, al
jne 0x496256
mov ecx, dword [ebp + 0x3c]
mov eax, dword [edi + 0x40]
cmp ecx, eax
mov dword [ebp - 0x88], ecx
jl 0x49628d
lea ecx, [eax + 1]
push 2
mov dword [edi + 0x40], ecx
push 0
lea ecx, [ebp - 0x5c]
push ecx
push eax
mov ecx, ebx
call fcn.004ab89a
cmp dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x7c], eax
jne 0x4962ac
lea eax, [ebp - 0x90]
push eax
mov ecx, ebx
call fcn.004a9c49
mov dword [ebp + 0x48], eax
jmp 0x4962c2
cmp word [eax], 0
je 0x4962c2
push dword [ebp + 0x54]
mov ecx, ebx
push dword [ebp + 0x3c]
push dword [ebp + 0x48]
call fcn.004401ce
mov eax, dword [ebp + 0x44]
inc dword [ebp + 0x3c]
cmp word [eax], 0
jne 0x496200
cmp word [esi], 0
jne 0x4961a7
push dword [ebp + 0x6c]
mov ecx, ebx
push dword [ebp + 0x68]
call fcn.00410e9b
push 0x32
pop ecx
push ecx
mov eax, ecx
push eax
push 1
mov ecx, ebx
call fcn.0044023a
cmp byte [ebp + 0x53], 0
je 0x49630a
push 0
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp + 0x2c]
xor eax, eax
cmp byte [ebp + 0x53], al
sete al
push eax
call fcn.0043a744
mov ecx, ebx
call fcn.004a95ce
lea ecx, [ebp + 0x7c]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0x2c]
pop edi
pop esi
pop ebx
add ebp, 0x30
leave
ret 0x48