Function at 0x547870
Capabilities:
Capture webcam image
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x648
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x8c], edx
mov ebp, ecx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x44]
push eax
mov esi, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x84], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x64], ebx
call dword [sym.imp.USER32.dll_SetRect]
xor eax, eax
mov ecx, 0x12a
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 4]
test eax, eax
je 0x547d63
cmp byte [eax], 0x2d
jne 0x547d63
push 0x61
push eax
call fcn.005912e0
add esp, 8
test eax, eax
mov edi, esi
je 0x54792a
mov dword [esp + 0x24], esi
mov ecx, dword [ebp + 4]
push 0x69
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547940
mov dword [esp + 0x1c], edi
mov edx, dword [ebp + 4]
push 0x64
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547956
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 4]
push 0x6d
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x54796c
mov dword [esp + 0x20], edi
mov ecx, dword [ebp + 4]
push 0x65
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547982
mov dword [esp + 0x30], edi
mov edx, dword [ebp + 4]
push 0x62
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x54799c
mov dword [esp + 0x30], 2
mov eax, dword [ebp + 4]
push 0x77
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x5479b2
mov dword [esp + 0x44], edi
mov ecx, dword [ebp + 4]
push 0x68
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x5479cc
mov dword [esp + 0x44], 2
mov edx, dword [ebp + 4]
push 0x73
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x5479e2
mov dword [esp + 0x48], edi
mov eax, dword [ebp + 4]
push 0x78
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x5479f8
mov dword [esp + 0x70], edi
mov ecx, dword [ebp + 4]
push 0x6b
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547a3c
lea esi, [eax + 1]
mov al, byte [esi]
test al, al
mov dword [esp + 0x50], edi
je 0x547a3c
movzx edx, al
push edx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x547a3c
push esi
call fcn.0059164b
xor ecx, ecx
add esp, 4
test eax, eax
setne cl
inc ecx
mov dword [esp + 0x50], ecx
mov edx, dword [ebp + 4]
push 0x74
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547a52
mov dword [esp + 0x68], edi
mov eax, dword [ebp + 4]
push 0x70
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547a68
mov dword [esp + 0x60], edi
mov ecx, dword [ebp + 4]
push 0x6c
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547a7e
mov dword [esp + 0x64], edi
mov edx, dword [ebp + 4]
push 0x6f
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547a94
mov dword [esp + 0x5c], edi
mov eax, dword [ebp + 4]
push 0x75
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547aaa
mov dword [esp + 0x2c], edi
mov ecx, dword [ebp + 4]
push 0x63
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547abe
mov ebx, edi
mov edx, dword [ebp + 4]
push 0x72
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547b05
mov ecx, edi
call fcn.00545e00
mov eax, dword [0x5f7ff4]
push edi
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x547afb
mov ecx, dword [0x5f7ff4]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 4]
push 0x6e
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547b49
lea esi, [eax + 1]
mov al, byte [esi]
test al, al
je 0x547b49
movzx eax, al
push eax
call fcn.005920a7
add esp, 4
test eax, eax
je 0x547b49
push esi
call fcn.0059164b
add esp, 4
test eax, eax
mov dword [esp + 0x6c], eax
jge 0x547b49
mov dword [esp + 0x6c], 0
mov ecx, dword [ebp + 4]
push 0x7a
push ecx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547ba2
lea esi, [eax + 1]
mov al, byte [esi]
test al, al
je 0x547ba2
movzx edx, al
push edx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x547ba2
push esi
call fcn.0059164b
add esp, 4
cmp eax, edi
jne 0x547b87
mov dword [esp + 0x58], edi
jmp 0x547ba2
cmp eax, 2
jne 0x547b92
mov dword [esp + 0x58], eax
jmp 0x547ba2
xor ecx, ecx
cmp eax, 3
setne cl
dec ecx
and ecx, 4
mov dword [esp + 0x58], ecx
mov edx, dword [ebp + 4]
push 0x79
push edx
call fcn.005912e0
add esp, 8
test eax, eax
je 0x547bf3
lea esi, [eax + 1]
mov al, byte [esi]
test al, al
je 0x547bf3
movzx eax, al
push eax
call fcn.005920a7
add esp, 4
test eax, eax
je 0x547bf3
push esi
call fcn.0059164b
add esp, 4
cmp eax, edi
mov dword [esp + 0x4c], eax
jge 0x547be4
mov dword [esp + 0x4c], edi
jmp 0x547bf3
cmp eax, 0xff
jle 0x547bf3
mov dword [esp + 0x4c], 0xff
test ebx, ebx
mov esi, 2
je 0x547c55
mov ecx, dword [0x5f7ff4]
push 0
push 0
push 0x418
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jle 0x547c4a
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
mov edi, edi
mov edx, dword [0x5f7ff4]
push 0
push 0
push 0x416
push edx
call ebx
dec edi
jne 0x547c20
mov eax, dword [0x5f7ff4]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, 1
mov eax, dword [ebp + 8]
test eax, eax
je 0x547ae6
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x547c65
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x547caf
mov edx, dword [0x5f7ff4]
push 0
push 0
push 0x418
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0x200
jle 0x547ca7
xor edx, edx
mov ecx, 0x1519
call fcn.0041f1a0
push eax
push 0x5cbac0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x547cd3
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x547cd3
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x547cd3
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x547cd3
mov eax, dword [esp + 0x44]
test eax, eax
je 0x547d63
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x548363
call fcn.00503910
test eax, eax
je 0x547d63
mov eax, dword [ebp + 8]
push eax
call fcn.0059164b
mov edi, eax
add esp, 4
test edi, edi
jle 0x54843a
mov eax, dword [esp + 0x18]
dec edi
test eax, eax
mov dword [esp + 0x54], edi
jne 0x547d1a
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x547d1a
mov eax, dword [esp + 0x44]
test eax, eax
je 0x547d5c
mov edx, dword [0x5f7ff4]
lea ecx, [esp + 0x28]
push ecx
push edi
push 0x43f
push edx
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x54843a
mov eax, dword [esp + 0x28]
add eax, 0x20
lea edx, [esp + 0xc8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x547d52
mov esi, 3
jmp 0x547d67
mov edi, dword [esp + 0x54]
mov al, byte [esp + 0xc8]
test al, al
jne 0x547e08
mov ecx, dword [ebp + esi*4]
test ecx, ecx
je 0x548363
call fcn.00503910
test eax, eax
je 0x547df1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x54843a
mov eax, dword [ebp + esi*4]
push eax
call fcn.0059164b
add esp, 4
test eax, eax
jle 0x54843a
mov edx, dword [0x5f7ff4]
lea ecx, [esp + 0x28]
push ecx
dec eax
push eax
push 0x43f
push edx
mov dword [esp + 0x38], 0
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x54843a
mov eax, dword [esp + 0x28]
add eax, 0x20
lea edx, [esp + 0xc8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x547de5
jmp 0x547e07
mov eax, dword [ebp + esi*4]
push eax
mov edx, 0x64
lea ecx, [esp + 0xcc]
call fcn.00420d70
inc esi
mov edx, dword [0x5f7ff4]
lea ecx, [esp + 0xc8]
push ecx
push 0
push 0x43d
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x28], ebx
je 0x547e6c
cmp ebx, 0xffffffff
je 0x54843a
mov eax, dword [0x5f7ff4]
push 0
push ebx
push 0x416
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x548ab7
mov edx, dword [ebp]
push 3
xor ecx, ecx
push ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
test eax, eax
je 0x547eb7
cmp ebx, 0xffffffff
je 0x54843a
cmp edi, 0xffffffff
je 0x54843a
mov eax, dword [0x5f7ff4]
push edi
push ebx
push 0x43e
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
jne 0x548ab7
mov edx, dword [ebp]
push 3
xor ecx, ecx
push ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x5484ec
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x547edb
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x547edb
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x547f09
cmp dword [ebp + esi*4], 0
push 0
je 0x54843c
push 0x104
lea eax, [esp + 0x134]
push eax
mov edx, esi
mov ecx, ebp
call fcn.00504590
mov esi, eax
test esi, esi
jl 0x54843a
inc esi
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x547f25
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x547f25
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x548318
cmp dword [ebp + esi*4], 0
je 0x548363
mov edx, 0x104
lea ecx, [esp + 0x550]
call fcn.00420e60
push 0
push 0x104
lea ecx, [esp + 0x558]
push ecx
mov edx, esi
mov ecx, ebp
call fcn.00504590
mov esi, eax
test esi, esi
jl 0x54843a
mov al, byte [esp + 0x550]
inc esi
test al, al
je 0x54843a
xor ebx, ebx
xor edi, edi
cmp al, 0x40
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x550]
jne 0x547fe5
xor edx, edx
call fcn.004f11f0
cmp eax, ebx
je 0x547fd0
cmp dword [eax + 0x87c], ebx
je 0x547fd0
cmp dword [eax + 0x758], ebx
je 0x547fd0
mov ecx, dword [eax + 0x960]
cmp ecx, ebx
je 0x547fd0
cmp dword [eax + 0x71c], 9
jne 0x547fd0
push 0x2000
push ebx
push ebx
push ebx
push ecx
call dword [sym.imp.USER32.dll_CopyImage]
mov dword [esp + 0x18], eax
jmp 0x54807b
mov edx, dword [ebp]
push 7
push ebx
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x550]
call fcn.0041f5c0
test eax, eax
jne 0x54800a
mov edx, dword [ebp]
push 3
push ebx
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 1
lea ecx, [esp + 0x550]
call fcn.00421f20
test eax, eax
jne 0x54803b
push 1
lea edx, [esp + 0x554]
push edx
mov edx, dword [ebp]
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x550]
call fcn.004235e0
test eax, eax
je 0x548060
lea eax, [esp + 0x18]
push eax
xor edx, edx
lea ecx, [esp + 0x554]
call fcn.00423640
jmp 0x54807b
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x6c]
push ecx
lea ecx, [esp + 0x554]
call fcn.00421850
mov edi, eax
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x5480a0
cmp edi, ebx
jne 0x54822d
mov edx, dword [ebp]
push 2
push ebx
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [sym.imp.GDI32.dll_GetObjectA]
lea edx, [esp + 0x74]
push edx
push 0x18
push eax
call ebx
test eax, eax
jne 0x5480d5
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [ebp]
push 2
push 0
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + esi*4]
cmp ecx, edi
je 0x5482cb
cmp dword [ebp + esi*4 + 4], edi
je 0x5482cb
cmp dword [ebp + esi*4 + 8], edi
je 0x5482cb
cmp dword [ebp + esi*4 + 0xc], edi
je 0x5482cb
call fcn.00503910
test eax, eax
je 0x5482c7
mov ecx, dword [ebp + esi*4 + 4]
call fcn.00503910
test eax, eax
je 0x5482c7
mov ecx, dword [ebp + esi*4 + 8]
call fcn.00503910
test eax, eax
je 0x5482c7
mov ecx, dword [ebp + esi*4 + 0xc]
call fcn.00503910
test eax, eax
je 0x5482c7
mov edx, dword [ebp + esi*4]
push edx
call fcn.0059164b
mov dword [esp + 0x38], eax
mov eax, dword [ebp + esi*4 + 4]
push eax
call fcn.0059164b
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + esi*4 + 8]
push ecx
call fcn.0059164b
mov dword [esp + 0x48], eax
mov edx, dword [ebp + esi*4 + 0xc]
push edx
call fcn.0059164b
mov ecx, dword [esp + 0x44]
add esp, 0x10
add esi, 4
cmp ecx, edi
mov dword [esp + 0x40], eax
jne 0x5481b9
cmp dword [esp + 0x38], edi
jne 0x5481b9
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x78]
jne 0x5481b9
cmp eax, dword [esp + 0x7c]
je 0x5482cb
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x34]
call fcn.00473e70
mov edx, dword [esp + 0x18]
push edx
mov edi, eax
call dword [sym.imp.GDI32.dll_DeleteObject]
test edi, edi
je 0x5480bf
lea eax, [esp + 0x74]
push eax
push 0x18
push edi
mov dword [esp + 0x24], edi
call ebx
test eax, eax
jne 0x54820e
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [ebp]
push 2
push 0
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
jmp 0x5482cb
lea eax, [esp + 0x74]
push eax
push edi
call dword [sym.imp.USER32.dll_GetIconInfo]
test eax, eax
je 0x548273
mov edx, dword [esp + 0x84]
lea ecx, [esp + 0x90]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
jne 0x54828f
mov eax, dword [esp + 0x84]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call esi
mov ecx, dword [esp + 0x80]
push ecx
call esi
push edi
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edx, dword [ebp]
push 2
push ebx
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
call edi
mov edx, dword [esp + 0x80]
push edx
call edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x10
jl 0x5484a9
cmp eax, 0x10
jl 0x5484a9
cmp ecx, 0x100
jg 0x5484a9
cmp eax, 0x100
jg 0x5484a9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], ecx
jmp 0x54831f
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x548337
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x548337
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x5483ae
cmp dword [ebp + esi*4], 0
jne 0x548379
test ecx, ecx
je 0x5484ec
test eax, eax
je 0x548351
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x548363
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edx, dword [ebp]
push 0
push 0
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0x180
lea edx, [esp + 0x24c]
push edx
mov edx, esi
mov ecx, ebp
call fcn.00504590
mov esi, eax
test esi, esi
jl 0x548416
mov al, byte [esp + 0x244]
test al, al
je 0x5483a6
cmp al, 0x2f
jne 0x548416
mov eax, dword [esp + 0x23c]
inc esi
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jne 0x5483ca
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x5483ca
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x5484ec
cmp dword [ebp + esi*4], 0
je 0x54833e
push 0
push 0x180
lea eax, [esp + 0x3cc]
push eax
mov edx, esi
mov ecx, ebp
call fcn.00504590
test eax, eax
jl 0x548416
cmp byte [esp + 0x3c4], 0x40
je 0x5484ec
lea edx, [esp + 0x3c4]
lea ecx, [esp + 0x3c4]
call fcn.0041f5c0
test eax, eax
jne 0x548450
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x548428
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x54843a
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
push 3
mov edx, dword [ebp]
push 0
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 1
lea ecx, [esp + 0x3c4]
call fcn.00421f20
test eax, eax
jne 0x5484ec
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x54847b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x54848d
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edx, dword [ebp]
push 1
lea ecx, [esp + 0x3c8]
push ecx
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5484b8
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5484c7
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
xor edx, edx
mov ecx, 0x151a
call fcn.0041f1a0
push eax
push 0x5cbac0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0059480a
cdq
mov ecx, 0x384
idiv ecx
push 0
mov esi, edx
mov edx, dword [0x5f7ff4]
add esi, 0x40b
push esi
push 0x419
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
je 0x54854f
jmp 0x548520
call fcn.0059480a
cdq
mov ecx, 0x384
idiv ecx
push 0
mov esi, edx
mov edx, dword [0x5f7ff4]
add esi, 0x40b
push esi
push 0x419
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
jne 0x548520
mov eax, dword [esp + 0x48]
test eax, eax
mov dword [esp + 0xa8], 0xffffffff
jne 0x548569
mov dword [esp + 0xa8], esi
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xac], esi
mov esi, 2
cmp ecx, esi
jne 0x548585
or byte [esp + 0xb0], 8
cmp dword [esp + 0x30], esi
je 0x548593
or byte [esp + 0xb0], 4
test eax, eax
je 0x5485a1
mov byte [esp + 0xb1], 1
jmp 0x5485c7
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5485bf
cmp eax, esi
mov byte [esp + 0xb1], 2
jne 0x5485c7
or byte [esp + 0xb0], 1
jmp 0x5485c7
mov byte [esp + 0xb1], 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0xc4]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x5485fa
mov eax, 0x10
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
jmp 0x54861c
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
sub ecx, edx
mov edx, dword [esp + 0x40]
sub edx, eax
mov dword [esp + 0x230], ecx
mov dword [esp + 0x234], edx
mov esi, dword [esp + 0x8c]
mov ecx, esi
mov dword [esp + 0x238], 0
call fcn.00419500
test eax, eax
jne 0x54863b
xor esi, esi
mov eax, dword [esp + 0x70]
neg eax
sbb eax, eax
and eax, 6
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54c], eax
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x548], esi
jne 0x5489a4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x5489a4
cmp ebx, 0xffffffff
jne 0x5486cd
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x54868e
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x5486a0
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
lea ecx, [esp + 0xc8]
push ecx
xor edx, edx
mov ecx, 0x151c
call fcn.0041f1a0
push eax
push 0x5cbac0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5f7ff4]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0x14]
push edx
push ebx
push 0x43f
xor esi, esi
push eax
mov dword [esp + 0x24], esi
call edi
test eax, eax
jne 0x548729
mov eax, dword [esp + 0x23c]
cmp eax, esi
je 0x548702
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
cmp eax, esi
je 0x548714
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov edx, dword [ebp]
push 3
push esi
xor ecx, ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
test byte [eax + 9], 1
jne 0x5488a8
mov ecx, dword [esp + 0x68]
xor ebx, ebx
cmp ecx, ebx
je 0x54875e
lea ecx, [esp + 0x12c]
lea edx, [eax + 0x84]
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x548750
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x64], ebx
je 0x54877f
lea ecx, [esp + 0x244]
lea edx, [eax + 0x19c]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x548771
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x5c], ebx
je 0x5487a0
lea ecx, [esp + 0x3c4]
lea edx, [eax + 0x31c]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x548792
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x60], ebx
je 0x54885f
cmp dword [esp + 0x23c], ebx
jne 0x5487c0
cmp dword [esp + 0x240], ebx
je 0x54885f
mov ecx, dword [eax + 0x194]
cmp ecx, ebx
je 0x5487d5
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x198]
cmp ecx, ebx
je 0x5487ea
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x23c]
mov dword [eax + 0x194], ecx
mov edx, dword [esp + 0x240]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x198], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x240], ebx
cmp dword [eax + 0x188], ecx
jne 0x54883f
mov edx, dword [eax + 0x18c]
cmp edx, dword [esp + 0x234]
jne 0x54883f
mov esi, 1
jmp 0x54885f
mov dword [eax + 0x188], ecx
mov eax, dword [esp + 0x234]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x18c], eax
mov eax, dword [esp + 0x14]
mov esi, 2
mov ecx, dword [esp + 0x4c]
cmp ecx, ebx
je 0x548876
mov dword [eax + 0x4a4], ecx
mov eax, dword [esp + 0x14]
mov esi, 1
test byte [eax + 9], 2
je 0x5488a8
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
je 0x5488a8
cmp ecx, 1
jne 0x548891
mov cl, byte [eax + 8]
and cl, 0xfe
jmp 0x54889c
cmp ecx, 2
jne 0x5488a3
mov cl, byte [eax + 8]
or cl, 1
mov byte [eax + 8], cl
mov eax, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x23c]
test ecx, ecx
je 0x5488be
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x240]
test ecx, ecx
je 0x5488d4
push ecx
call dword [sym.imp.USER32.dll_DestroyIcon]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x548915
cmp ecx, 1
jne 0x5488f3
mov edx, dword [eax + 4]
mov eax, dword [0x5f7ff4]
push ecx
push edx
push 0x401
push eax
jmp 0x54890a
cmp ecx, 2
jne 0x548910
mov ecx, dword [eax + 4]
mov edx, dword [0x5f7ff4]
push 0
push ecx
push 0x401
push edx
call edi
mov eax, dword [esp + 0x14]
mov esi, 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x548952
cmp ecx, 1
jne 0x548938
mov eax, dword [eax + 4]
mov ecx, dword [0x5f7ff4]
push 0
push eax
push 0x404
push ecx
call edi
jmp 0x54896e
cmp ecx, 2
jne 0x54896e
mov edx, dword [eax + 4]
mov eax, dword [0x5f7ff4]
push 1
push edx
push 0x404
push eax
call edi
jmp 0x54896e
test esi, esi
je 0x54897f
cmp esi, 1
jne 0x548969
mov ecx, dword [0x5f7ff4]
push esi
add eax, 0xc
push eax
push ecx
jmp 0x548979
cmp esi, 2
jne 0x54897f
mov edx, dword [0x5f7ff4]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x548add
mov eax, dword [0x5f7ff4]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xffffffff
je 0x5489fa
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x5489bb
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x5489cd
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
lea ecx, [esp + 0xc8]
push ecx
xor edx, edx
mov ecx, 0x151b
call fcn.0041f1a0
push eax
push 0x5cbac0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x48]
test eax, eax
mov esi, dword [sym.imp.USER32.dll_DestroyIcon]
je 0x548a40
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x548a25
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [esp + 0x23c], 0
mov eax, dword [esp + 0x240]
test eax, eax
je 0x548a5a
push eax
call esi
mov dword [esp + 0x240], 0
jmp 0x548a5a
mov eax, dword [esp + 0x23c]
test eax, eax
jne 0x548a5a
mov eax, dword [esp + 0x240]
test eax, eax
je 0x548363
cmp edi, 0xffffffff
jne 0x548a64
mov edi, 0x3e7
mov eax, dword [0x5f7ff4]
lea edx, [esp + 0xa8]
push edx
push edi
push 0x415
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x548ab7
mov eax, dword [esp + 0x23c]
test eax, eax
je 0x548a94
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x240]
test eax, eax
je 0x548aa2
push eax
call esi
mov edx, dword [ebp]
push 2
xor ecx, ecx
push ecx
call fcn.004803b0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x5f7ff4]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x548add
mov edx, dword [0x5f7ff4]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
mov eax, 1
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret