Function at 0x490bad
Capabilities:
Hide graphical window

Disassembly:
push ebp
lea ebp, [esp - 0x30]
sub esp, 0x174
push ebx
push esi
push edi
push dword [ebp + 0x54]
mov eax, 0x4c0a1c
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.004390e7
push 0x4dcd58
mov dword [esi], 0x4c94f8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 0x80]
and dword [ebp + 0x18], 0
shl eax, 2
not eax
and eax, 0x10000
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x78]
test eax, eax
mov dword [ebp + 0x14], 9
je 0x490c2a
mov cx, word [eax]
mov ax, word [eax + 2]
mov word [ebp + 0x18], cx
mov word [ebp + 0x14], ax
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov edi, 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 ebx, 0x800
and eax, ebx
mov dword [ebp - 0x20], eax
mov eax, edx
and eax, 0xfffff7ff
mov dword [esi + 0x44], eax
mov al, dl
and al, 0x10
push edi
push edx
mov dword [ebp], ecx
mov dword [ebp + 0x20], edi
mov byte [ebp + 0x57], al
mov dword [ebp + 0x4c], 0x10000000
call fcn.0043eae4
test al, al
pop ecx
pop ecx
je 0x490c87
mov dword [ebp + 0x4c], 0x18000000
mov eax, edx
and eax, 0x40
xor ecx, ecx
or eax, ecx
je 0x490c96
or byte [ebp + 0x4e], 0x80
mov eax, edx
and eax, 0x80000000
xor ecx, ecx
or eax, edi
je 0x490ca5
mov ecx, ebx
mov eax, edx
and eax, 0x80000
xor edi, edi
or eax, edi
jne 0x490cb6
or dword [ebp + 0x4c], 8
or dword [ebp + 0x4c], 1
mov eax, edx
and eax, 0x2000
xor edi, edi
or eax, edi
je 0x490ccb
or byte [ebp + 0x4d], 0x40
mov eax, edx
and eax, 0x1000
xor edi, edi
or eax, edi
je 0x490cdc
or byte [ebp + 0x4d], 2
mov eax, edx
and eax, 0x2090000
xor edx, edx
or eax, edx
je 0x490ced
or dword [ebp + 0x4c], 4
test ecx, ecx
jle 0x490cf4
or dword [ebp + 0x4c], ecx
push 0x250
call fcn.004adce8
test eax, eax
pop ecx
je 0x490d13
push esi
add esi, 0x34
push esi
mov ecx, eax
call fcn.004a74b6
mov ebx, eax
jmp 0x490d15
xor ebx, ebx
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x74]
push dword [ebp + 0x40]
mov dword [eax + 0x1c], ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x7c]
mov dword [ebx + 0x14c], eax
mov eax, dword [ebp + 0x3c]
push dword [eax + 0x18]
mov eax, dword [ebp + 0x4c]
or eax, dword [ebp + 0x44]
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.004a3d0e
mov ecx, ebx
call fcn.0043e9aa
push eax
lea ecx, [ebx + 0x84]
call fcn.004a364a
mov eax, dword [ebp + 0x68]
and eax, 0x4800
xor ecx, ecx
cmp eax, 0x4000
jne 0x490d8d
test ecx, ecx
jne 0x490d8d
push ecx
push dword [ebx + 0x9c]
call dword [sym.imp.USER32.dll_EnableWindow]
or byte [ebx + 0x249], 1
mov eax, dword [ebp + 0x68]
and eax, 0x4000
xor ecx, ecx
xor esi, esi
or eax, ecx
je 0x490da4
or byte [ebx + 0x248], 1
lea ecx, [ebp + 0x7c]
call fcn.00444e32
mov edi, dword [ebp + 0x60]
cmp word [edi], 0x3d
jne 0x490de8
inc edi
inc edi
push 0x3a
lea eax, [ebp + 0x60]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x4c], edi
call fcn.00405b85
mov edi, dword [ebp + 0x60]
mov eax, edi
sub eax, dword [ebp + 0x4c]
pop ecx
sar eax, 1
push eax
push dword [ebp + 0x4c]
lea ecx, [ebp + 0x7c]
call fcn.00444f56
cmp word [edi], si
je 0x490de8
inc edi
inc edi
mov dword [ebp + 0x60], edi
mov ecx, dword [ebp + 0x3c]
call fcn.0049a9be
fld qword [0x4c6fb8]
and byte [ebp + 0x69], 0xf7
fstp qword [ebp + 0x24]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x6c], eax
xor eax, eax
mov ax, word [edi]
cmp ax, 0x2a
mov dword [ebp + 0x78], eax
jne 0x490e17
mov word [edi], si
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
pop ecx
pop ecx
push 2
pop edi
jne 0x490e37
add eax, edi
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x50], eax
push 0x3a
lea eax, [ebp + 0x50]
call fcn.00405b85
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
je 0x490e53
mov word [eax], si
add dword [ebp + 0x50], edi
fld qword [0x4c6fb8]
or dword [ebp + 0x38], 0xffffffff
fst qword [ebp - 0x30]
lea eax, [ebp - 0x30]
fldz
push eax
fstp qword [ebp - 0x38]
lea eax, [ebp + 0x50]
push eax
mov dword [ebp + 0x44], 0x80000000
fst qword [ebp - 0x1c]
fst qword [ebp - 0x28]
fst qword [ebp + 0xc]
fstp qword [ebp - 0x14]
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.004473bb
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.0044821c
mov eax, dword [ebp + 0x50]
cmp word [eax], si
pop ecx
pop ecx
je 0x490f45
add dword [ebp + 0x50], edi
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.004482c2
pop ecx
pop ecx
fld qword [ebp + 0x24]
mov esi, dword [sym.imp.GDI32.dll_GetObjectW]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
je 0x490f6f
mov eax, dword [ebp + 0x60]
cmp word [eax], 0
jne 0x490f6f
cmp word [ebp + 0x78], 0
je 0x491001
and dword [ebp - 0xe8], 0
fld qword [ebp + 0x24]
push 0x16
fstp qword [ebp + 4]
pop ecx
xor eax, eax
lea edi, [ebp - 0xe4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xe8]
push eax
push 0x5c
push dword [ebp + 0x4c]
call esi
fld qword [ebp + 0xc]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
jne 0x490fbc
fld qword [ebp + 0xc]
push ecx
push ecx
fstp qword [esp]
call fcn.004443fe
pop ecx
pop ecx
mov dword [ebp - 0xe8], eax
fld qword [ebp - 0x14]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
jne 0x490fe1
fld qword [ebp - 0x14]
push ecx
push ecx
fstp qword [esp]
call fcn.004443fe
pop ecx
pop ecx
mov dword [ebp - 0xe4], eax
push dword [ebp + 0x60]
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.0047be10
add esp, 0xc
test eax, eax
mov dword [ebx + 0x48], eax
je 0x491001
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x3c]
push dword [eax + 0x18]
lea ecx, [ebp + 0xc]
call fcn.00401034
push dword [ebp + 0xc]
call dword [sym.imp.GDI32.dll_GetBkColor]
push eax
mov ecx, ebx
call fcn.0043e9fb
lea ecx, [ebp + 0xc]
call fcn.0040104d
push dword [ebp + 0x60]
lea eax, [ebp + 0x24]
push eax
push dword [ebp + 0x4c]
call fcn.00485ccf
fld qword [ebp + 0x24]
fcomp qword [0x4c49d8]
mov dword [ebx + 0x150], eax
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x491059
fld qword [ebp + 0x24]
fstp qword [ebx + 0x230]
fld qword [ebp - 0x14]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
jne 0x491072
fld qword [ebp - 0x14]
fstp qword [ebx + 0x238]
push 1
push dword [ebx + 0x18]
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov eax, dword [ebx]
push 1
push dword [ebp + 0x4c]
mov ecx, ebx
call dword [eax + 0x80]
mov eax, dword [ebp + 0x44]
test eax, eax
jl 0x491098
movzx edx, al
jmp 0x49109b
or edx, 0xffffffff
test eax, eax
jl 0x4910a4
movzx ecx, ah
jmp 0x4910a7
or ecx, 0xffffffff
test eax, eax
jl 0x4910b3
sar eax, 0x10
movzx eax, al
jmp 0x4910b6
or eax, 0xffffffff
fld qword [ebp - 0x38]
push ecx
fstp dword [esp]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004a451e
and dword [ebp - 0x144], 0
push 0x16
pop ecx
xor eax, eax
lea edi, [ebp - 0x140]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x144]
push eax
push 0x5c
push dword [ebp + 0x4c]
call esi
fld qword [0x4cbd60]
fstp qword [ebp + 4]
fld qword [ebp - 0x1c]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
jne 0x491117
fld qword [ebp - 0x1c]
push ecx
push ecx
fstp qword [esp]
call fcn.004443fe
pop ecx
pop ecx
mov dword [ebp - 0x144], eax
fld qword [ebp - 0x28]
fcomp qword [0x4c49d8]
fnstsw ax
test ah, 0x41
jne 0x49113c
fld qword [ebp - 0x28]
push ecx
push ecx
fstp qword [esp]
call fcn.004443fe
pop ecx
pop ecx
mov dword [ebp - 0x140], eax
push dword [ebp + 0x70]
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.0047be10
mov dword [ebx + 0x120], eax
mov eax, dword [ebp + 0x68]
and eax, 0x80
xor ecx, ecx
add esp, 0xc
or eax, ecx
je 0x49116d
or byte [ebx + 0x248], 4
mov ecx, dword [ebp + 0x68]
mov eax, ecx
and eax, 0x100
xor edx, edx
or eax, edx
je 0x491184
or byte [ebx + 0x248], 8
mov eax, ecx
and eax, 0x3800200
xor edx, edx
xor esi, esi
or eax, edx
jne 0x491194
inc esi
mov eax, ecx
mov edi, 0x400
and eax, edi
xor edx, edx
or eax, edx
je 0x4911a6
or esi, 4
mov eax, ecx
and eax, 0x4000
xor edx, edx
or eax, edx
je 0x4911ba
or byte [ebx + 0x248], 1
cmp dword [ebp - 0x20], 0
je 0x4911c3
or esi, 0x10
mov eax, ecx
and eax, 0x20000
xor ecx, ecx
or eax, ecx
je 0x4911d6
or esi, 0x8000
mov ecx, ebx
call fcn.0043e9e8
or esi, eax
mov eax, dword [ebp + 0x68]
and eax, 0x600000
xor ecx, ecx
or eax, ecx
je 0x4911f0
or esi, 4
push esi
mov ecx, ebx
call fcn.004a3d7a
mov eax, dword [ebp + 0x68]
and eax, 0x10000
xor ecx, ecx
or eax, ecx
je 0x491210
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 0x491227
or byte [ebx + 0x248], 2
mov eax, edx
and eax, 0x80000
xor ecx, ecx
or eax, ecx
je 0x49123b
or byte [ebx + 0x248], 0x20
mov eax, edx
and eax, 0x100000
xor ecx, ecx
or eax, ecx
je 0x49124f
or byte [ebx + 0x248], 0x40
mov eax, edx
and eax, 0x200000
xor ecx, ecx
or eax, ecx
je 0x491263
or word [ebx + 0x248], di
mov eax, edx
and eax, 0x400000
xor ecx, ecx
or eax, ecx
je 0x491277
or byte [ebx + 0x249], 0xc
mov eax, edx
and eax, 0x800000
xor ecx, ecx
or eax, ecx
je 0x49128b
or byte [ebx + 0x249], 0x18
mov eax, edx
and eax, 0x1000000
xor ecx, ecx
or eax, ecx
je 0x49129f
or byte [ebx + 0x249], 0x28
mov al, byte [ebp + 0x20]
and al, 1
mov byte [ebp + 0x63], al
je 0x4912b0
or byte [ebx + 0x249], 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 + 0x4c], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.00447d71
cmp dword [ebp - 0xc], 0
pop ecx
pop ecx
jl 0x4912f0
push dword [ebp - 0xc]
mov ecx, ebx
call fcn.0043e9fb
mov eax, dword [ebp - 8]
test eax, eax
jl 0x491305
push eax
mov ecx, ebx
mov dword [ebx + 0x21c], eax
call fcn.0043ea12
mov eax, dword [ebp - 4]
test eax, eax
jl 0x49131a
push eax
mov ecx, ebx
mov dword [ebx + 0x218], eax
call fcn.004a4578
mov eax, dword [ebp]
cmp eax, esi
jne 0x491383
mov eax, dword [ebp + 0x68]
and eax, 0x50000
xor ecx, ecx
or eax, ecx
jne 0x491377
push 0x23
pop edi
push edi
lea eax, [ebp + 0x4c]
call fcn.00405b85
mov eax, dword [ebp + 0x4c]
cmp word [eax], di
pop ecx
jne 0x491352
add dword [ebp + 0x4c], 2
push edi
lea eax, [ebp + 0x4c]
call fcn.00405b85
pop ecx
mov eax, dword [ebp + 0x4c]
cmp word [eax], di
jne 0x491368
add dword [ebp + 0x4c], 2
push edi
lea eax, [ebp + 0x4c]
call fcn.00405b85
pop ecx
mov eax, dword [ebp + 0x4c]
cmp word [eax], di
jne 0x491389
cmp word [eax + 2], 0x2a
jne 0x491389
push 0xd
call dword [sym.imp.USER32.dll_GetSysColor]
cmp eax, esi
je 0x491389
mov dword [ebx + 0x220], eax
xor ecx, ecx
cmp dword [ebx + 0x220], ecx
jl 0x4913a6
mov eax, dword [ebp + 0x68]
and eax, 0x10000
or eax, ecx
je 0x4913a6
or byte [ebx + 0x248], 0x10
push 7
pop edx
xor eax, eax
mov ecx, edx
lea edi, [ebp - 0x54]
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 - 0x54], edi
mov dword [ebp - 0x58], edx
mov dword [ebp + 0x48], eax
cmp word [eax], cx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 0x3c]
mov esi, dword [ecx + 0xec]
sete byte [ebp + 0x67]
cmp dword [ebx + 0x220], 0
jl 0x4913f3
test byte [ebx + 0x248], 0x10
jne 0x4913fc
test byte [ebx + 0x248], 0x20
je 0x491406
or byte [ebx + 0x248], 0x80
mov eax, dword [ebp + 0x48]
and dword [ebp + 0x3c], 0
jmp 0x4914be
push dword [ebp + 0x14]
and dword [ebp + 0x74], 0
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp + 0x4c], 0x80000000
mov dword [ebp + 0x44], 2
mov byte [ebp + 0x78], 0
call fcn.00490a40
add esp, 0x1c
test eax, eax
jge 0x491452
cmp dword [ebp + 0x4c], 0
jl 0x491460
push dword [ebp + 0x4c]
mov ecx, ebx
push eax
push dword [ebp + 0x3c]
call fcn.004a735a
mov eax, dword [ebp - 0x50]
cdq
add dword [ebp + 0x1c], eax
adc dword [ebp + 0x20], edx
test esi, esi
jle 0x49148f
push dword [ebp + 0x20]
mov eax, esi
push dword [ebp + 0x1c]
cdq
push edx
push eax
call fcn.004adbb0
push 0
push 0x60
push edx
push eax
call fcn.004ae000
sub eax, dword [ebp + 0x24]
mov dword [ebp - 0x50], eax
push dword [ebp + 0x44]
lea eax, [ebp - 0x58]
push dword [ebp + 0x78]
mov ecx, ebx
push eax
push dword [ebp + 0x3c]
call fcn.004a5329
mov eax, dword [ebp - 0x50]
cdq
add dword [ebp + 0x24], eax
lea ecx, [ebp + 0x74]
mov dword [ebp - 0x54], edi
adc dword [ebp + 0x28], edx
call fcn.0043e679
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x48]
cmp word [eax], 0
jne 0x49140f
fld qword [ebp - 0x30]
mov eax, dword [ebp + 0x3c]
fcomp qword [0x4c49d8]
mov ecx, dword [ebp + 0x2c]
mov dword [ecx + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x4914ef
fld qword [ebp - 0x30]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.004a4555
cmp dword [ebp + 0x38], 0
jle 0x4914ff
push dword [ebp + 0x38]
mov ecx, ebx
call fcn.004a4562
xor eax, eax
push 0xc
pop ecx
lea edi, [ebp - 0x88]
rep stosd dword es:[edi], eax
and dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x5c]
mov edi, dword [eax]
mov dword [ebp - 0x88], 0x7fffffff
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x78], 0x4c0a1c
cmp word [edi], 0
mov dword [ebp + 0x4c], edi
je 0x49166c
cmp word [ebp + 0x18], 0
mov dword [ebp + 0x48], edi
lea eax, [ebp + 0x4c]
jne 0x491563
call fcn.00444a40
mov edi, dword [ebp + 0x4c]
cmp word [edi], 0xd
mov eax, edi
jne 0x491571
inc edi
inc edi
mov dword [ebp + 0x4c], edi
jmp 0x491571
push dword [ebp + 0x18]
call fcn.00405b85
mov edi, dword [ebp + 0x4c]
pop ecx
mov eax, edi
cmp word [edi], 0
je 0x49157c
inc edi
inc edi
mov dword [ebp + 0x4c], edi
xor esi, esi
cmp word [eax], si
je 0x491586
mov word [eax], si
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x3c], esi
jmp 0x491657
cmp byte [ebp + 0x67], 0
jne 0x4915a6
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
cmp ecx, dword [eax + 0x40]
jge 0x491663
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x48]
je 0x4915bd
push eax
call fcn.00405b4a
jmp 0x4915c5
push dword [ebp + 0x14]
call fcn.00405b85
pop ecx
mov ecx, dword [ebp + 0x48]
cmp word [ecx], si
je 0x4915d9
mov word [ecx], si
mov ecx, dword [ebp + 0x48]
inc ecx
inc ecx
mov dword [ebp + 0x48], ecx
cmp byte [ebp + 0x63], 0
je 0x4915f6
cmp ecx, esi
je 0x4915f6
jmp 0x4915ea
inc ecx
inc ecx
mov dword [ebp + 0x48], ecx
mov ax, word [ecx]
call fcn.0043e5db
test al, al
jne 0x4915e5
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [eax + 0x40]
cmp ecx, eax
mov dword [ebp - 0x84], ecx
jl 0x491621
mov edx, dword [ebp + 0x2c]
lea ecx, [eax + 1]
push 2
mov dword [edx + 0x40], ecx
push esi
lea ecx, [ebp - 0x58]
push ecx
push eax
mov ecx, ebx
call fcn.004a5329
cmp dword [ebp + 0x3c], esi
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0x78], eax
jne 0x49163f
lea eax, [ebp - 0x8c]
push eax
mov ecx, ebx
call fcn.004a3d91
mov dword [ebp + 0x38], eax
jmp 0x491654
cmp word [eax], si
je 0x491654
push dword [ebp + 0x44]
mov ecx, ebx
push dword [ebp + 0x3c]
push dword [ebp + 0x38]
call fcn.0043e9bd
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x48]
cmp word [eax], si
jne 0x491591
cmp word [edi], si
jne 0x49153f
push dword [ebp + 0x6c]
mov ecx, ebx
push dword [ebp + 0x68]
call fcn.00410be4
push 0x32
pop ecx
push ecx
mov eax, ecx
push eax
push 1
mov ecx, ebx
call fcn.0043ea29
cmp byte [ebp + 0x57], 0
je 0x49169a
push 0
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp + 0x2c]
xor eax, eax
cmp byte [ebp + 0x57], al
sete al
push eax
call fcn.00438fe9
mov ecx, ebx
call fcn.004a3716
lea ecx, [ebp + 0x7c]
call fcn.0043e679
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0x2c]
pop edi
pop esi
pop ebx
add ebp, 0x30
leave
ret 0x48